home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 2 / AACD 2.iso / AACD / Magazine / GraphicsCards / StormMesa / src / image.s < prev    next >
Text File  |  1999-02-04  |  138KB  |  7,872 lines

  1.  
  2. ; Storm C Compiler
  3. ; Work2:Mesa3/Mesa-3.0/src/image.c
  4.     mc68030
  5.     mc68881
  6.     XREF    _gl_map_color
  7.     XREF    _gl_scale_and_bias_color
  8.     XREF    _gl_error
  9.     XREF    _gl_problem
  10.     XREF    _q_memcpy
  11.     XREF    _malloc
  12.     XREF    _free
  13.     XREF    _calloc
  14.     XREF    _CC
  15.  
  16.     SECTION "_gl_flip_bytes:0",CODE
  17.  
  18.  
  19. ;void gl_flip_bytes( GLubyte *p, GLuint n )
  20.     XDEF    _gl_flip_bytes
  21. _gl_flip_bytes
  22.     movem.l    d2-d5,-(a7)
  23.     move.l    $18(a7),d4
  24.     move.l    $14(a7),a1
  25. L818
  26. ;   for (i=0;
  27.     moveq    #0,d2
  28.     bra.b    L820
  29. L819
  30. ;      b = (GLuint) p[i];
  31.     moveq    #0,d1
  32.     move.b    0(a1,d2.l),d1
  33. ;      a = ((b & 0x01) << 7) |
  34.     move.l    d1,d0
  35.     and.l    #1,d0
  36.     moveq    #7,d3
  37.     asl.l    d3,d0
  38.     move.l    d1,d3
  39.     and.l    #2,d3
  40.     moveq    #5,d5
  41.     asl.l    d5,d3
  42.     or.l    d3,d0
  43.     move.l    d1,d3
  44.     and.l    #4,d3
  45.     moveq    #3,d5
  46.     asl.l    d5,d3
  47.     or.l    d3,d0
  48.     move.l    d1,d3
  49.     and.l    #$8,d3
  50.     moveq    #1,d5
  51.     asl.l    d5,d3
  52.     or.l    d3,d0
  53.     move.l    d1,d3
  54.     and.l    #$10,d3
  55.     moveq    #1,d5
  56.     lsr.l    d5,d3
  57.     or.l    d3,d0
  58.     move.l    d1,d3
  59.     and.l    #$20,d3
  60.     moveq    #3,d5
  61.     lsr.l    d5,d3
  62.     or.l    d3,d0
  63.     move.l    d1,d3
  64.     and.l    #$40,d3
  65.     moveq    #5,d5
  66.     lsr.l    d5,d3
  67.     or.l    d3,d0
  68.     and.l    #$80,d1
  69.     moveq    #7,d3
  70.     lsr.l    d3,d1
  71.     or.l    d1,d0
  72. ;      p[i] = (GLubyte) a;
  73.     move.b    d0,0(a1,d2.l)
  74.     addq.l    #1,d2
  75. L820
  76.     cmp.l    d4,d2
  77.     blo.b    L819
  78. L821
  79.     movem.l    (a7)+,d2-d5
  80.     rts
  81.  
  82.     SECTION "_gl_swap2:0",CODE
  83.  
  84.     rts
  85.  
  86. ;void gl_swap2( GLushort *p, GLuint n )
  87.     XDEF    _gl_swap2
  88. _gl_swap2
  89.     movem.l    d2-d4,-(a7)
  90.     move.l    $14(a7),d3
  91.     move.l    $10(a7),a0
  92. L822
  93. ;   for (i=0;
  94.     moveq    #0,d0
  95.     bra.b    L824
  96. L823
  97. ;      p[i] = (p[i] >> 8) | ((p[i] << 8) & 0xff00);
  98.     moveq    #0,d1
  99.     move.w    0(a0,d0.l*2),d1
  100.     moveq    #$8,d2
  101.     asr.l    d2,d1
  102.     moveq    #0,d2
  103.     move.w    0(a0,d0.l*2),d2
  104.     moveq    #$8,d4
  105.     asl.l    d4,d2
  106.     and.l    #$FF00,d2
  107.     or.l    d2,d1
  108.     move.w    d1,0(a0,d0.l*2)
  109.     addq.l    #1,d0
  110. L824
  111.     cmp.l    d3,d0
  112.     blo.b    L823
  113. L825
  114.     movem.l    (a7)+,d2-d4
  115.     rts
  116.  
  117.     SECTION "_gl_swap4:0",CODE
  118.  
  119.  
  120. ;void gl_swap4( GLuint *p, GLuint n )
  121.     XDEF    _gl_swap4
  122. _gl_swap4
  123.     movem.l    d2-d5,-(a7)
  124.     move.l    $18(a7),d4
  125.     move.l    $14(a7),a1
  126. L826
  127. ;   for (i=0;
  128.     moveq    #0,d2
  129.     bra.b    L828
  130. L827
  131. ;      b = p[i];
  132.     move.l    0(a1,d2.l*4),d0
  133. ;      a =  (b >> 24)
  134.     move.l    d0,d1
  135.     moveq    #$18,d3
  136.     lsr.l    d3,d1
  137.     move.l    d0,d3
  138.     moveq    #$8,d5
  139.     lsr.l    d5,d3
  140.     and.l    #$FF00,d3
  141.     or.l    d3,d1
  142.     move.l    d0,d3
  143.     moveq    #$8,d5
  144.     asl.l    d5,d3
  145.     and.l    #$FF0000,d3
  146.     or.l    d3,d1
  147.     moveq    #$18,d3
  148.     asl.l    d3,d0
  149.     and.l    #-$1000000,d0
  150.     or.l    d0,d1
  151. ;      p[i] = a;
  152.     move.l    d1,0(a1,d2.l*4)
  153.     addq.l    #1,d2
  154. L828
  155.     cmp.l    d4,d2
  156.     blo.b    L827
  157. L829
  158.     movem.l    (a7)+,d2-d5
  159.     rts
  160.  
  161.     SECTION "_gl_sizeof_type:0",CODE
  162.  
  163.  
  164. ;GLint gl_sizeof_type( GLenum type )
  165.     XDEF    _gl_sizeof_type
  166. _gl_sizeof_type
  167.     move.l    4(a7),d0
  168. L830
  169. ;   switch (type)
  170.     cmp.l    #$1404,d0
  171.     beq.b    L837
  172.     bgt.b    L840
  173.     cmp.l    #$1402,d0
  174.     beq.b    L835
  175.     bgt.b    L841
  176.     cmp.l    #$1400,d0
  177.     beq.b    L833
  178.     cmp.l    #$1401,d0
  179.     beq.b    L832
  180.     bra.b    L839
  181. L841
  182.     bgt.b    L834
  183. L840
  184.     cmp.l    #$1406,d0
  185.     beq.b    L838
  186.     bgt.b    L842
  187.     blt.b    L836
  188. L842
  189.     cmp.l    #$1A00,d0
  190.     beq.b    L831
  191.     bra.b    L839
  192. ;      
  193. L831
  194.     moveq    #0,d0
  195.     rts
  196. L832
  197.     moveq    #1,d0
  198.     rts
  199. L833
  200.     moveq    #1,d0
  201.     rts
  202. L834
  203.     moveq    #2,d0
  204.     rts
  205. L835
  206.     moveq    #2,d0
  207.     rts
  208. L836
  209.     moveq    #4,d0
  210.     rts
  211. L837
  212.     moveq    #4,d0
  213.     rts
  214. L838
  215.     moveq    #4,d0
  216.     rts
  217. L839
  218.     moveq    #-1,d0
  219.     rts
  220.  
  221.     SECTION "_gl_sizeof_packed_type:0",CODE
  222.  
  223.  
  224. ;GLint gl_sizeof_packed_type( GLenum type )
  225.     XDEF    _gl_sizeof_packed_type
  226. _gl_sizeof_packed_type
  227.     move.l    4(a7),d0
  228. L843
  229. ;   switch (type)
  230.     cmp.l    #$8034,d0
  231.     beq    L858
  232.     bgt.b    L865
  233.     cmp.l    #$1405,d0
  234.     beq    L849
  235.     bgt.b    L866
  236.     cmp.l    #$1402,d0
  237.     beq    L848
  238.     bgt.b    L867
  239.     cmp.l    #$1400,d0
  240.     beq    L846
  241.     cmp.l    #$1401,d0
  242.     beq    L845
  243.     bra    L864
  244. L867
  245.     cmp.l    #$1403,d0
  246.     beq    L847
  247.     cmp.l    #$1404,d0
  248.     beq    L850
  249.     bra    L864
  250. L866
  251.     cmp.l    #$8032,d0
  252.     beq    L852
  253.     bgt.b    L868
  254.     cmp.l    #$1406,d0
  255.     beq    L851
  256.     cmp.l    #$1A00,d0
  257.     beq.b    L844
  258.     bra    L864
  259. L868
  260.     bgt    L856
  261. L865
  262.     cmp.l    #$8364,d0
  263.     beq    L855
  264.     bgt.b    L869
  265.     cmp.l    #$8362,d0
  266.     beq.b    L853
  267.     bgt.b    L870
  268.     cmp.l    #$8035,d0
  269.     beq    L860
  270.     cmp.l    #$8036,d0
  271.     beq    L862
  272.     bra    L864
  273. L870
  274.     bgt.b    L854
  275. L869
  276.     cmp.l    #$8367,d0
  277.     beq.b    L861
  278.     bgt.b    L871
  279.     cmp.l    #$8365,d0
  280.     beq.b    L857
  281.     cmp.l    #$8366,d0
  282.     beq.b    L859
  283.     bra.b    L864
  284. L871
  285.     cmp.l    #$8368,d0
  286.     beq.b    L863
  287.     bra.b    L864
  288. ;      
  289. L844
  290.     moveq    #0,d0
  291.     rts
  292. L845
  293.     moveq    #1,d0
  294.     rts
  295. L846
  296.     moveq    #1,d0
  297.     rts
  298. L847
  299.     moveq    #2,d0
  300.     rts
  301. L848
  302.     moveq    #2,d0
  303.     rts
  304. L849
  305.     moveq    #4,d0
  306.     rts
  307. L850
  308.     moveq    #4,d0
  309.     rts
  310. L851
  311.     moveq    #4,d0
  312.     rts
  313. L852
  314.     moveq    #1,d0
  315.     rts
  316. L853
  317.     moveq    #1,d0
  318.     rts
  319. L854
  320.     moveq    #2,d0
  321.     rts
  322. L855
  323.     moveq    #2,d0
  324.     rts
  325. L856
  326.     moveq    #2,d0
  327.     rts
  328. L857
  329.     moveq    #2,d0
  330.     rts
  331. L858
  332.     moveq    #2,d0
  333.     rts
  334. L859
  335.     moveq    #2,d0
  336.     rts
  337. L860
  338.     moveq    #4,d0
  339.     rts
  340. L861
  341.     moveq    #4,d0
  342.     rts
  343. L862
  344.     moveq    #4,d0
  345.     rts
  346. L863
  347.     moveq    #4,d0
  348.     rts
  349. L864
  350.     moveq    #-1,d0
  351.     rts
  352.  
  353.     SECTION "_gl_components_in_format:0",CODE
  354.  
  355.  
  356. ;GLint gl_components_in_format( GLenum format )
  357.     XDEF    _gl_components_in_format
  358. _gl_components_in_format
  359.     move.l    4(a7),d0
  360. L872
  361. ;   switch (format)
  362.     cmp.l    #$8036,d0
  363.     beq    L880
  364.     bgt    L882
  365.     cmp.l    #$1908,d0
  366.     beq    L876
  367.     bgt.b    L883
  368.     sub.l    #$1900,d0
  369.     cmp.l    #7,d0
  370.     bhi    L881
  371.     move.l    L884(pc,d0.l*4),a0
  372.     jmp    (a0)
  373. L884
  374.     dc.l    L873
  375.     dc.l    L873
  376.     dc.l    L873
  377.     dc.l    L873
  378.     dc.l    L873
  379.     dc.l    L873
  380.     dc.l    L873
  381.     dc.l    L875
  382. L883
  383.     cmp.l    #$8032,d0
  384.     beq    L880
  385.     bgt.b    L885
  386.     cmp.l    #$190A,d0
  387.     beq    L874
  388.     bgt.b    L886
  389.     blt    L873
  390. L886
  391.     cmp.l    #$8000,d0
  392.     beq    L879
  393.     bra    L881
  394. L885
  395.     cmp.l    #$8034,d0
  396.     beq    L880
  397.     bgt.b    L887
  398.     blt    L880
  399. L887
  400.     bgt    L880
  401. L882
  402.     cmp.l    #$80E7,d0
  403.     beq.b    L873
  404.     bgt.b    L888
  405.     sub.l    #$80E0,d0
  406.     cmp.l    #6,d0
  407.     bhi.b    L881
  408.     move.l    L889(pc,d0.l*4),a0
  409.     jmp    (a0)
  410. L889
  411.     dc.l    L877
  412.     dc.l    L878
  413.     dc.l    L873
  414.     dc.l    L873
  415.     dc.l    L873
  416.     dc.l    L873
  417.     dc.l    L873
  418. L888
  419.     sub.l    #$8362,d0
  420.     cmp.l    #6,d0
  421.     bhi.b    L881
  422.     move.l    L890(pc,d0.l*4),a0
  423.     jmp    (a0)
  424. L890
  425.     dc.l    L880
  426.     dc.l    L880
  427.     dc.l    L880
  428.     dc.l    L880
  429.     dc.l    L880
  430.     dc.l    L880
  431.     dc.l    L880
  432. ;      
  433. L873
  434.     moveq    #1,d0
  435.     rts
  436. L874
  437.     moveq    #2,d0
  438.     rts
  439. L875
  440.     moveq    #3,d0
  441.     rts
  442. L876
  443.     moveq    #4,d0
  444.     rts
  445. L877
  446.     moveq    #3,d0
  447.     rts
  448. L878
  449.     moveq    #4,d0
  450.     rts
  451. L879
  452.     moveq    #4,d0
  453.     rts
  454. L880
  455.     moveq    #1,d0
  456.     rts
  457. L881
  458.     moveq    #-1,d0
  459.     rts
  460.  
  461.     SECTION "_gl_pixel_addr_in_image:0",CODE
  462.  
  463.  
  464. ;GLvoid *gl_pixel_addr_in_image( const struct gl_pixelstore_attrib *p
  465.     XDEF    _gl_pixel_addr_in_image
  466. _gl_pixel_addr_in_image
  467. L915    EQU    -$48
  468.     link    a5,#L915
  469.     movem.l    d2-d7/a2/a3,-(a7)
  470.     movem.l    $14(a5),d2/d5
  471.     move.l    $1C(a5),d3
  472.     move.l    $10(a5),d4
  473.     move.l    $8(a5),a2
  474.     move.l    $C(a5),a3
  475. L891
  476. ;   bytes_per_comp = gl_sizeof_packed_type( type );
  477.     move.l    d3,-(a7)
  478.     jsr    _gl_sizeof_packed_type
  479.     addq.w    #4,a7
  480.     move.l    d0,-4(a5)
  481. ;   if (bytes_per_comp<0) 
  482.     tst.l    -4(a5)
  483.     bpl.b    L893
  484. L892
  485.     moveq    #0,d0
  486.     movem.l    (a7)+,d2-d7/a2/a3
  487.     unlk    a5
  488.     rts
  489. L893
  490. ;   comp_per_pixel = gl_components_in_format( format );
  491.     move.l    d5,-(a7)
  492.     jsr    _gl_components_in_format
  493.     addq.w    #4,a7
  494. ;   if (comp_per_pixel<0 && type != GL_BITMAP) 
  495.     tst.l    d0
  496.     bpl.b    L896
  497. L894
  498.     cmp.l    #$1A00,d3
  499.     beq.b    L896
  500. L895
  501.     moveq    #0,d0
  502.     movem.l    (a7)+,d2-d7/a2/a3
  503.     unlk    a5
  504.     rts
  505. L896
  506. ;   alignment = packing->Alignment;
  507.     move.l    (a2),d5
  508. ;   if (packing->RowLength > 0) 
  509.     move.l    4(a2),d1
  510.     cmp.l    #0,d1
  511.     ble.b    L898
  512. L897
  513. ;      pixels_per_row = packing->RowLength;
  514.     move.l    4(a2),-$10(a5)
  515.     bra.b    L899
  516. L898
  517. ;      pixels_per_row = width;
  518.     move.l    d4,-$10(a5)
  519. L899
  520. ;   if (packing->ImageHeight>0) 
  521.     move.l    $10(a2),d1
  522.     cmp.l    #0,d1
  523.     ble.b    L901
  524. L900
  525. ;      rows_per_image = packing->ImageHeight;
  526.     move.l    $10(a2),-$18(a5)
  527.     bra.b    L902
  528. L901
  529. ;      rows_per_image = height;
  530.     move.l    d2,-$18(a5)
  531. L902
  532. ;   skiprows = packing->SkipRows;
  533.     move.l    $C(a2),d2
  534. ;   skippixels = packing->SkipPixels;
  535.     move.l    $8(a2),d1
  536. ;   skipimages = packing->SkipImages;
  537.     move.l    $14(a2),d4
  538. ;   if (type==GL_BITMAP) 
  539.     cmp.l    #$1A00,d3
  540.     bne.b    L907
  541. L903
  542. ;      bytes_per_row = alignment
  543.     move.l    d0,d3
  544.     muls.l    -$10(a5),d3
  545.     move.l    d5,d6
  546.     moveq    #3,d7
  547.     asl.l    d7,d6
  548.     divsl.l    d6,d6:d3
  549.     tst.l    d6
  550.     bne.b    L905
  551. L904
  552.     muls.l    -$10(a5),d0
  553.     move.l    d5,d3
  554.     moveq    #3,d6
  555.     asl.l    d6,d3
  556.     divsl.l    d3,d0
  557.     bra.b    L906
  558. L905
  559.     muls.l    -$10(a5),d0
  560.     move.l    d5,d3
  561.     moveq    #3,d6
  562.     asl.l    d6,d3
  563.     divsl.l    d3,d0
  564.     addq.l    #1,d0
  565. L906
  566.     muls.l    d5,d0
  567. ;      bytes_per_image = bytes_per_row * rows_per_image;
  568.     move.l    d0,d3
  569.     muls.l    -$18(a5),d3
  570. ;      pixel_addr = (GLubyte *) image
  571.     add.l    $20(a5),d4
  572.     muls.l    d3,d4
  573.     add.l    $24(a5),d2
  574.     muls.l    d0,d2
  575.     lea    0(a3,d4.l),a0
  576.     add.l    $28(a5),d1
  577.     divsl.l    #$8,d1
  578.     lea    0(a0,d2.l),a0
  579.     add.l    d1,a0
  580.     bra    L914
  581. L907
  582. ;      if (bytes_per_comp>=alignment) 
  583.     move.l    -4(a5),d3
  584.     cmp.l    d5,d3
  585.     blt.b    L909
  586. L908
  587. ;     comps_per_row = comp_per_pixel * pixels_per_row;
  588.     move.l    d0,d3
  589.     muls.l    -$10(a5),d3
  590.     move.l    d3,-$C(a5)
  591.     bra.b    L913
  592. L909
  593. ;         GLint bytes_per_row = bytes_per_comp * comp_per_pi
  594.     move.l    -4(a5),d3
  595.     muls.l    d0,d3
  596.     muls.l    -$10(a5),d3
  597. ;     comps_per_row = alignment / bytes_per_comp
  598.     move.l    d5,d6
  599.     divsl.l    -4(a5),d6
  600.     move.l    d6,-$C(a5)
  601.     move.l    d3,d6
  602.     divsl.l    d5,d7:d6
  603.     tst.l    d7
  604.     bne.b    L911
  605. L910
  606.     divsl.l    d5,d3
  607.     bra.b    L912
  608. L911
  609.     divsl.l    d5,d3
  610.     addq.l    #1,d3
  611. L912
  612.     move.l    -$C(a5),d5
  613.     muls.l    d3,d5
  614.     move.l    d5,-$C(a5)
  615. L913
  616. ;      bytes_per_image = bytes_per_comp * comps_per_row * rows_
  617.     move.l    -4(a5),d3
  618.     muls.l    -$C(a5),d3
  619.     muls.l    -$18(a5),d3
  620. ;      image->Height = height;
  621.     add.l    $20(a5),d4
  622.     muls.l    d3,d4
  623.     add.l    $24(a5),d2
  624.     muls.l    -4(a5),d2
  625.     muls.l    -$C(a5),d2
  626.     lea    0(a3,d4.l),a0
  627.     add.l    d2,a0
  628.     add.l    $28(a5),d1
  629.     muls.l    -4(a5),d1
  630.     muls.l    d0,d1
  631.     add.l    d1,a0
  632. L914
  633.     move.l    a0,d0
  634.     movem.l    (a7)+,d2-d7/a2/a3
  635.     unlk    a5
  636.     rts
  637.  
  638.     SECTION "_alloc_image:0",CODE
  639.  
  640.  
  641. ;static struct gl_image *alloc_image( void )
  642. _alloc_image
  643. L916
  644.     pea    1.w
  645.     pea    $22.w
  646.     jsr    _calloc
  647.     addq.w    #$8,a7
  648.     rts
  649.  
  650.     SECTION "_alloc_error_image:0",CODE
  651.  
  652.  
  653. ;static struct gl_image *alloc_error_image( GLint width, GLint height
  654. _alloc_error_image
  655.     movem.l    d2-d6,-(a7)
  656.     move.l    $28(a7),d2
  657.     move.l    $24(a7),d3
  658.     move.l    $20(a7),d4
  659.     move.l    $1C(a7),d5
  660.     move.l    $18(a7),d6
  661. L917
  662. ;   struct gl_image *image = alloc_image();
  663.     jsr    _alloc_image
  664.     move.l    d0,a0
  665. ;   if (image) 
  666.     cmp.w    #0,a0
  667.     beq.b    L919
  668. L918
  669. ;      image->Width = width;
  670.     move.l    d6,(a0)
  671. ;      image->Height = height;
  672.     move.l    d5,4(a0)
  673. ;      image->Depth = depth;
  674.     move.l    d4,$8(a0)
  675. ;      image->Format = format;
  676.     move.l    d3,$10(a0)
  677. ;      image->Type = type;
  678.     move.l    d2,$14(a0)
  679. ;      image->ErrorFlag = GL_TRUE;
  680.     move.b    #1,$1C(a0)
  681. L919
  682.     move.l    a0,d0
  683.     movem.l    (a7)+,d2-d6
  684.     rts
  685.  
  686.     SECTION "_gl_free_image:0",CODE
  687.  
  688.  
  689. ;void gl_free_image( struct gl_image *image )
  690.     XDEF    _gl_free_image
  691. _gl_free_image
  692.     move.l    a2,-(a7)
  693.     move.l    $8(a7),a2
  694. L920
  695. ;   if (image->Data) 
  696.     tst.l    $18(a2)
  697.     beq.b    L922
  698. L921
  699. ;      free(image->Data);
  700.     move.l    $18(a2),-(a7)
  701.     jsr    _free
  702.     addq.w    #4,a7
  703. L922
  704. ;   free(image);
  705.     move.l    a2,-(a7)
  706.     jsr    _free
  707.     addq.w    #4,a7
  708.     move.l    (a7)+,a2
  709.     rts
  710.  
  711.     SECTION "_gl_image_error_test:0",CODE
  712.  
  713.  
  714. ;GLboolean gl_image_error_test( GLcontext *ctx, const struct gl_image
  715.     XDEF    _gl_image_error_test
  716. _gl_image_error_test
  717.     move.l    a2,-(a7)
  718.     movem.l    $C(a7),a0/a2
  719.     move.l    $8(a7),a1
  720. L923
  721. ;   if (image->Width <= 0 || image->Height <= 0 || image->Depth <=
  722.     move.l    (a0),d0
  723.     cmp.l    #0,d0
  724.     ble.b    L926
  725. L924
  726.     move.l    4(a0),d0
  727.     cmp.l    #0,d0
  728.     ble.b    L926
  729. L925
  730.     move.l    $8(a0),d0
  731.     cmp.l    #0,d0
  732.     bgt.b    L927
  733. L926
  734. ;      gl_error( ctx, GL_INVALID_VALUE, msg );
  735.     move.l    a2,-(a7)
  736.     pea    $501.w
  737.     move.l    a1,-(a7)
  738.     jsr    _gl_error
  739.     add.w    #$C,a7
  740.     moveq    #1,d0
  741.     move.l    (a7)+,a2
  742.     rts
  743. L927
  744.     moveq    #0,d0
  745.     move.l    (a7)+,a2
  746.     rts
  747.  
  748.     SECTION "_unpack_depth_image:0",CODE
  749.  
  750.  
  751. ;static struct gl_image *unpack_depth_image( GLcontext *ctx, GLenum t
  752. _unpack_depth_image
  753. L982    EQU    -$3C
  754.     link    a5,#L982
  755.     movem.l    d2-d7/a2-a4,-(a7)
  756.     movem.l    $10(a5),d2/d7
  757.     move.l    $8(a5),a4
  758. L929
  759. ;   image = alloc_image();
  760.     jsr    _alloc_image
  761.     move.l    d0,-4(a5)
  762. ;   if (image) 
  763.     tst.l    -4(a5)
  764.     beq    L938
  765. L930
  766. ;      image->Width = width;
  767.     move.l    -4(a5),a0
  768.     move.l    d2,(a0)
  769. ;      image->Height = height;
  770.     move.l    -4(a5),a0
  771.     move.l    d7,4(a0)
  772. ;      image->Depth = 1;
  773.     move.l    -4(a5),a0
  774.     move.l    #1,$8(a0)
  775. ;      image->Components = 1;
  776.     move.l    -4(a5),a0
  777.     move.l    #1,$C(a0)
  778. ;      image->Format = GL_DEPTH_COMPONENT;
  779.     move.l    -4(a5),a0
  780.     move.l    #$1902,$10(a0)
  781. ;      if (type==GL_UNSIGNED_SHORT) 
  782.     move.l    $C(a5),d0
  783.     cmp.l    #$1403,d0
  784.     bne.b    L932
  785. L931
  786. ;         image->Type = GL_UNSIGNED_SHORT;
  787.     move.l    -4(a5),a0
  788.     move.l    #$1403,$14(a0)
  789. ;         image->Data = malloc( width * height * sizeof(GLus
  790.     move.l    d2,d0
  791.     muls.l    d7,d0
  792.     moveq    #1,d1
  793.     asl.l    d1,d0
  794.     move.l    d0,-(a7)
  795.     jsr    _malloc
  796.     addq.w    #4,a7
  797.     move.l    -4(a5),a1
  798.     move.l    d0,$18(a1)
  799.     bra.b    L935
  800. L932
  801. ;      else if (type==GL_UNSIGNED_INT) 
  802.     move.l    $C(a5),d0
  803.     cmp.l    #$1405,d0
  804.     bne.b    L934
  805. L933
  806. ;         image->Type = GL_UNSIGNED_INT;
  807.     move.l    -4(a5),a0
  808.     move.l    #$1405,$14(a0)
  809. ;         image->Data = malloc( width * height * sizeof(GLui
  810.     move.l    d2,d0
  811.     muls.l    d7,d0
  812.     moveq    #2,d1
  813.     asl.l    d1,d0
  814.     move.l    d0,-(a7)
  815.     jsr    _malloc
  816.     addq.w    #4,a7
  817.     move.l    -4(a5),a1
  818.     move.l    d0,$18(a1)
  819.     bra.b    L935
  820. L934
  821. ;         image->Type = GL_FLOAT;
  822.     move.l    -4(a5),a0
  823.     move.l    #$1406,$14(a0)
  824. ;         image->Data = malloc( width * height * sizeof(GLfl
  825.     move.l    d2,d0
  826.     muls.l    d7,d0
  827.     moveq    #2,d1
  828.     asl.l    d1,d0
  829.     move.l    d0,-(a7)
  830.     jsr    _malloc
  831.     addq.w    #4,a7
  832.     move.l    -4(a5),a1
  833.     move.l    d0,$18(a1)
  834. L935
  835. ;      image->RefCount = 0;
  836.     move.l    -4(a5),a0
  837.     clr.l    $1E(a0)
  838. ;      if (!image->Data)
  839.     move.l    -4(a5),a1
  840.     tst.l    $18(a1)
  841.     bne.b    L937
  842. L936
  843.     move.l    -4(a5),d0
  844.     movem.l    (a7)+,d2-d7/a2-a4
  845.     unlk    a5
  846.     rts
  847. L937
  848. ;         return 
  849.     bra.b    L939
  850. L938
  851.     moveq    #0,d0
  852.     movem.l    (a7)+,d2-d7/a2-a4
  853.     unlk    a5
  854.     rts
  855. L939
  856. ;   fDst = (GLfloat *) image->Data;
  857.     move.l    -4(a5),a0
  858.     move.l    $18(a0),a2
  859. ;   sDst = (GLushort *) image->Data;
  860.     move.l    -4(a5),a0
  861.     move.l    $18(a0),-$C(a5)
  862. ;   iDst = (GLuint *) image->Data;
  863.     move.l    -4(a5),a0
  864.     move.l    $18(a0),-$10(a5)
  865. ;   for (i=0;
  866.     moveq    #0,d5
  867.     bra    L980
  868. L940
  869. ;      GLvoid *src = gl_pixel_addr_in_image( &ctx->Unpack, pixe
  870.     clr.l    -(a7)
  871.     move.l    d5,-(a7)
  872.     clr.l    -(a7)
  873.     move.l    $C(a5),-(a7)
  874.     pea    $1902.w
  875.     move.l    d7,-(a7)
  876.     move.l    d2,-(a7)
  877.     move.l    $18(a5),-(a7)
  878.     move.l    a4,a0
  879.     add.l    #$E65E,a0
  880.     pea    (a0)
  881.     jsr    _gl_pixel_addr_in_image
  882.     add.w    #$24,a7
  883.     move.l    d0,a0
  884. ;      if (!src) 
  885.     cmp.w    #0,a0
  886.     bne.b    L942
  887. L941
  888.     move.l    -4(a5),d0
  889.     movem.l    (a7)+,d2-d7/a2-a4
  890.     unlk    a5
  891.     rts
  892. L942
  893. ;      switch (type)
  894.     move.l    $C(a5),d0
  895.     sub.l    #$1400,d0
  896.     cmp.l    #6,d0
  897.     bhi    L978
  898.     move.l    L983(pc,d0.l*4),a1
  899.     jmp    (a1)
  900. L983
  901.     dc.l    L943
  902.     dc.l    L947
  903.     dc.l    L954
  904.     dc.l    L951
  905.     dc.l    L963
  906.     dc.l    L972
  907.     dc.l    L975
  908. ;         
  909. L943
  910. ;            for (j=0;
  911.     moveq    #0,d0
  912.     bra.b    L945
  913. L944
  914. ;               *fDst++ = BYTE_TO_FLOAT(((GLbyte*)src)
  915.     move.b    0(a0,d0.l),d1
  916.     extb.l    d1
  917.     fmove.l    d1,fp0
  918.     fmul.s    #$.40000000,fp0
  919.     fadd.s    #$.3F800000,fp0
  920.     fmul.s    #$.3B808080,fp0
  921.     fmove.s    fp0,(a2)+
  922.     addq.l    #1,d0
  923. L945
  924.     cmp.l    d2,d0
  925.     blt.b    L944
  926. L946
  927. ;            
  928.     bra    L979
  929. L947
  930. ;            for (j=0;
  931.     moveq    #0,d0
  932.     bra.b    L949
  933. L948
  934. ;               *fDst++ = UBYTE_TO_FLOAT(((GLubyte*)sr
  935.     moveq    #0,d1
  936.     move.b    0(a0,d0.l),d1
  937.     fmove.l    d1,fp0
  938.     fmul.s    #$.3B808080,fp0
  939.     fmove.s    fp0,(a2)+
  940.     addq.l    #1,d0
  941. L949
  942.     cmp.l    d2,d0
  943.     blt.b    L948
  944. L950
  945. ;            
  946.     bra    L979
  947. L951
  948. ;       MEMCPY( sD
  949.     move.l    d2,d0
  950.     moveq    #1,d1
  951.     asl.l    d1,d0
  952.     move.l    d0,-(a7)
  953.     move.l    a0,-(a7)
  954.     move.l    -$C(a5),-(a7)
  955.     jsr    _q_memcpy
  956.     add.w    #$C,a7
  957. ;            if (ctx->Unpack.SwapBytes) 
  958.     move.l    a4,a0
  959.     add.l    #$E65E,a0
  960.     tst.b    $18(a0)
  961.     beq.b    L953
  962. L952
  963. ;               gl_swap2( sDst, width );
  964.     move.l    d2,-(a7)
  965.     move.l    -$C(a5),-(a7)
  966.     jsr    _gl_swap2
  967.     addq.w    #$8,a7
  968. L953
  969. ;            sDst += width;
  970.     move.l    d2,d0
  971.     moveq    #1,d1
  972.     asl.l    d1,d0
  973.     add.l    -$C(a5),d0
  974.     move.l    d0,-$C(a5)
  975. ;            
  976.     bra    L979
  977. L954
  978. ;            if (ctx->Unpack.SwapBytes) 
  979.     move.l    a4,a1
  980.     add.l    #$E65E,a1
  981.     tst.b    $18(a1)
  982.     beq.b    L959
  983. L955
  984. ;               for (j=0;
  985.     moveq    #0,d0
  986.     bra.b    L957
  987. L956
  988. ;                  GLshort value = ((GLshort*)src)[
  989.     move.w    0(a0,d0.l*2),d3
  990. ;                  value = ((value >> 8) & 0xff) | 
  991.     move.w    d3,d1
  992.     ext.l    d1
  993.     moveq    #$8,d4
  994.     asr.l    d4,d1
  995.     and.l    #$FF,d1
  996.     ext.l    d3
  997.     and.l    #$FF,d3
  998.     moveq    #$8,d4
  999.     asl.l    d4,d3
  1000.     or.l    d3,d1
  1001. ;                  *fDst++ = SHORT_TO_FLOAT(value);
  1002.     ext.l    d1
  1003.     fmove.l    d1,fp0
  1004.     fmul.s    #$.40000000,fp0
  1005.     fadd.s    #$.3F800000,fp0
  1006.     fmul.s    #$.37800080,fp0
  1007.     fmove.s    fp0,(a2)+
  1008.     addq.l    #1,d0
  1009. L957
  1010.     cmp.l    d2,d0
  1011.     blt.b    L956
  1012. L958
  1013.     bra.b    L962
  1014. L959
  1015. ;               for (j=0;
  1016.     moveq    #0,d0
  1017.     bra.b    L961
  1018. L960
  1019. ;                  *fDst++ = SHORT_TO_FLOAT(((GLsho
  1020.     move.w    0(a0,d0.l*2),d1
  1021.     ext.l    d1
  1022.     fmove.l    d1,fp0
  1023.     fmul.s    #$.40000000,fp0
  1024.     fadd.s    #$.3F800000,fp0
  1025.     fmul.s    #$.37800080,fp0
  1026.     fmove.s    fp0,(a2)+
  1027.     addq.l    #1,d0
  1028. L961
  1029.     cmp.l    d2,d0
  1030.     blt.b    L960
  1031. L962
  1032. ;            
  1033.     bra    L979
  1034. L963
  1035. ;            if (ctx->Unpack.SwapBytes) 
  1036.     move.l    a4,a1
  1037.     add.l    #$E65E,a1
  1038.     tst.b    $18(a1)
  1039.     beq.b    L968
  1040. L964
  1041. ;               for (j=0;
  1042.     moveq    #0,d0
  1043.     bra.b    L966
  1044. L965
  1045. ;                  GLint value = ((GLint*)src)[j];
  1046.     move.l    0(a0,d0.l*4),d1
  1047. ;         case GL_BYTE:
  1048.     move.l    d1,d3
  1049.     moveq    #$18,d4
  1050.     asr.l    d4,d3
  1051.     and.l    #$FF,d3
  1052.     move.l    d1,d4
  1053.     moveq    #$8,d6
  1054.     asr.l    d6,d4
  1055.     and.l    #$FF00,d4
  1056.     or.l    d4,d3
  1057.     move.l    d1,d4
  1058.     moveq    #$8,d6
  1059.     asl.l    d6,d4
  1060.     and.l    #$FF0000,d4
  1061.     or.l    d4,d3
  1062.     moveq    #$18,d4
  1063.     asl.l    d4,d1
  1064.     and.l    #-$1000000,d1
  1065.     or.l    d3,d1
  1066. ;                  *fDst++ = INT_TO_FLOAT(value);
  1067.     fmove.l    d1,fp0
  1068.     fmul.s    #$.40000000,fp0
  1069.     fadd.s    #$.3F800000,fp0
  1070.     fmul.s    #$.2F800000,fp0
  1071.     fmove.s    fp0,(a2)+
  1072.     addq.l    #1,d0
  1073. L966
  1074.     cmp.l    d2,d0
  1075.     blt.b    L965
  1076. L967
  1077.     bra.b    L971
  1078. L968
  1079. ;               for (j=0;
  1080.     moveq    #0,d0
  1081.     bra.b    L970
  1082. L969
  1083. ;                  *fDst++ = INT_TO_FLOAT(((GLint*)
  1084.     fmove.l    0(a0,d0.l*4),fp0
  1085.     fmul.s    #$.40000000,fp0
  1086.     fadd.s    #$.3F800000,fp0
  1087.     fmul.s    #$.2F800000,fp0
  1088.     fmove.s    fp0,(a2)+
  1089.     addq.l    #1,d0
  1090. L970
  1091.     cmp.l    d2,d0
  1092.     blt.b    L969
  1093. L971
  1094. ;            iDst += width;
  1095.     move.l    d2,d0
  1096.     moveq    #2,d1
  1097.     asl.l    d1,d0
  1098.     add.l    -$10(a5),d0
  1099.     move.l    d0,-$10(a5)
  1100. ;            
  1101.     bra    L979
  1102. L972
  1103. ;         MEMCPY( 
  1104.     move.l    d2,d0
  1105.     moveq    #2,d1
  1106.     asl.l    d1,d0
  1107.     move.l    d0,-(a7)
  1108.     move.l    a0,-(a7)
  1109.     move.l    -$10(a5),-(a7)
  1110.     jsr    _q_memcpy
  1111.     add.w    #$C,a7
  1112. ;            if (ctx->Unpack.SwapBytes) 
  1113.     move.l    a4,a0
  1114.     add.l    #$E65E,a0
  1115.     tst.b    $18(a0)
  1116.     beq.b    L974
  1117. L973
  1118. ;               gl_swap4( iDst, width );
  1119.     move.l    d2,-(a7)
  1120.     move.l    -$10(a5),-(a7)
  1121.     jsr    _gl_swap4
  1122.     addq.w    #$8,a7
  1123. L974
  1124. ;            iDst += width;
  1125.     move.l    d2,d0
  1126.     moveq    #2,d1
  1127.     asl.l    d1,d0
  1128.     add.l    -$10(a5),d0
  1129.     move.l    d0,-$10(a5)
  1130. ;            
  1131.     bra.b    L979
  1132. L975
  1133. ;        MEMCPY( f
  1134.     move.l    d2,d0
  1135.     moveq    #2,d1
  1136.     asl.l    d1,d0
  1137.     move.l    d0,-(a7)
  1138.     move.l    a0,-(a7)
  1139.     move.l    a2,-(a7)
  1140.     jsr    _q_memcpy
  1141.     add.w    #$C,a7
  1142. ;            if (ctx->Unpack.SwapBytes) 
  1143.     move.l    a4,a0
  1144.     add.l    #$E65E,a0
  1145.     tst.b    $18(a0)
  1146.     beq.b    L977
  1147. L976
  1148. ;               gl_swap4( (GLuint*) fDst, width );
  1149.     move.l    d2,-(a7)
  1150.     move.l    a2,-(a7)
  1151.     jsr    _gl_swap4
  1152.     addq.w    #$8,a7
  1153. L977
  1154. ;            fDst += width;
  1155.     move.l    d2,d0
  1156.     moveq    #2,d1
  1157.     asl.l    d1,d0
  1158.     add.l    d0,a2
  1159. ;            
  1160.     bra.b    L979
  1161. L978
  1162. ;            gl_problem(ctx, "unpack_depth_image type" );
  1163.     move.l    #L928,-(a7)
  1164.     move.l    a4,-(a7)
  1165.     jsr    _gl_problem
  1166.     addq.w    #$8,a7
  1167.     move.l    -4(a5),d0
  1168.     movem.l    (a7)+,d2-d7/a2-a4
  1169.     unlk    a5
  1170.     rts
  1171. L979
  1172.     addq.l    #1,d5
  1173. L980
  1174.     cmp.l    d7,d5
  1175.     blt    L940
  1176. L981
  1177. ;            return 
  1178.     move.l    -4(a5),d0
  1179.     movem.l    (a7)+,d2-d7/a2-a4
  1180.     unlk    a5
  1181.     rts
  1182.  
  1183. L928
  1184.     dc.b    'unpack_depth_image type',0
  1185.  
  1186.     SECTION "_unpack_stencil_image:0",CODE
  1187.  
  1188.  
  1189. ;static struct gl_image *unpack_stencil_image( GLcontext *ctx, GLenum
  1190. _unpack_stencil_image
  1191. L1035    EQU    -$24
  1192.     link    a5,#L1035
  1193.     movem.l    d2-d7/a2-a4,-(a7)
  1194.     movem.l    $10(a5),d2/d5
  1195.     move.l    $C(a5),d7
  1196.     move.l    $8(a5),a4
  1197. L985
  1198. ;   image = alloc_image();
  1199.     jsr    _alloc_image
  1200.     move.l    d0,-4(a5)
  1201. ;   if (image) 
  1202.     tst.l    -4(a5)
  1203.     beq.b    L989
  1204. L986
  1205. ;      image->Width = width;
  1206.     move.l    -4(a5),a0
  1207.     move.l    d2,(a0)
  1208. ;      image->Height = height;
  1209.     move.l    -4(a5),a0
  1210.     move.l    d5,4(a0)
  1211. ;      image->Depth = 1;
  1212.     move.l    -4(a5),a0
  1213.     move.l    #1,$8(a0)
  1214. ;      image->Components = 1;
  1215.     move.l    -4(a5),a0
  1216.     move.l    #1,$C(a0)
  1217. ;      image->Format = GL_STENCIL_INDEX;
  1218.     move.l    -4(a5),a0
  1219.     move.l    #$1901,$10(a0)
  1220. ;      image->Type = GL_UNSIGNED_BYTE;
  1221.     move.l    -4(a5),a0
  1222.     move.l    #$1401,$14(a0)
  1223. ;      image->Data = malloc( width * height * sizeof(GLubyte));
  1224.     move.l    d2,d0
  1225.     muls.l    d5,d0
  1226.     move.l    d0,-(a7)
  1227.     jsr    _malloc
  1228.     addq.w    #4,a7
  1229.     move.l    -4(a5),a1
  1230.     move.l    d0,$18(a1)
  1231. ;      image->RefCount = 0;
  1232.     move.l    -4(a5),a0
  1233.     clr.l    $1E(a0)
  1234. ;      if (!image->Data)
  1235.     move.l    -4(a5),a1
  1236.     tst.l    $18(a1)
  1237.     bne.b    L988
  1238. L987
  1239.     move.l    -4(a5),d0
  1240.     movem.l    (a7)+,d2-d7/a2-a4
  1241.     unlk    a5
  1242.     rts
  1243. L988
  1244. ;         return 
  1245.     bra.b    L990
  1246. L989
  1247.     moveq    #0,d0
  1248.     movem.l    (a7)+,d2-d7/a2-a4
  1249.     unlk    a5
  1250.     rts
  1251. L990
  1252. ;   dst = (GLubyte *) image->Data;
  1253.     move.l    -4(a5),a0
  1254.     move.l    $18(a0),a2
  1255. ;   for (i=0;
  1256.     moveq    #0,d4
  1257.     bra    L1033
  1258. L991
  1259. ;      GLvoid *src = gl_pixel_addr_in_image( &ctx->Unpack, pixe
  1260.     clr.l    -(a7)
  1261.     move.l    d4,-(a7)
  1262.     clr.l    -(a7)
  1263.     move.l    d7,-(a7)
  1264.     pea    $1901.w
  1265.     move.l    d5,-(a7)
  1266.     move.l    d2,-(a7)
  1267.     move.l    $18(a5),-(a7)
  1268.     move.l    a4,a0
  1269.     add.l    #$E65E,a0
  1270.     pea    (a0)
  1271.     jsr    _gl_pixel_addr_in_image
  1272.     add.w    #$24,a7
  1273.     move.l    d0,a0
  1274. ;      if (!src) 
  1275.     cmp.w    #0,a0
  1276.     bne.b    L993
  1277. L992
  1278.     move.l    -4(a5),d0
  1279.     movem.l    (a7)+,d2-d7/a2-a4
  1280.     unlk    a5
  1281.     rts
  1282. L993
  1283. ;      switch (type)
  1284.     move.l    d7,d0
  1285.     sub.l    #$1400,d0
  1286.     cmp.l    #6,d0
  1287.     bhi    L1031
  1288.     move.l    L1036(pc,d0.l*4),a1
  1289.     jmp    (a1)
  1290. L1036
  1291.     dc.l    L994
  1292.     dc.l    L994
  1293.     dc.l    L995
  1294.     dc.l    L995
  1295.     dc.l    L1004
  1296.     dc.l    L1013
  1297.     dc.l    L1022
  1298. ;         
  1299. L994
  1300. ;         MEMCPY( 
  1301.     move.l    d2,-(a7)
  1302.     move.l    a0,-(a7)
  1303.     move.l    a2,-(a7)
  1304.     jsr    _q_memcpy
  1305.     add.w    #$C,a7
  1306. ;            dst += width * sizeof(GLubyte);
  1307.     add.l    d2,a2
  1308. ;            
  1309.     bra    L1032
  1310. L995
  1311. ;            if (ctx->Unpack.SwapBytes) 
  1312.     move.l    a4,a1
  1313.     add.l    #$E65E,a1
  1314.     tst.b    $18(a1)
  1315.     beq.b    L1000
  1316. L996
  1317. ;               for (j=0;
  1318.     moveq    #0,d0
  1319.     bra.b    L998
  1320. L997
  1321. ;                  *dst++ = (((GLushort*)src)[j] & 
  1322.     moveq    #0,d1
  1323.     move.w    0(a0,d0.l*2),d1
  1324.     and.l    #$FF00,d1
  1325.     moveq    #$8,d3
  1326.     asr.l    d3,d1
  1327.     move.b    d1,(a2)+
  1328.     addq.l    #1,d0
  1329. L998
  1330.     cmp.l    d2,d0
  1331.     blt.b    L997
  1332. L999
  1333.     bra.b    L1003
  1334. L1000
  1335. ;               for (j=0;
  1336.     moveq    #0,d0
  1337.     bra.b    L1002
  1338. L1001
  1339. ;                  *dst++ = (((GLushort*)src)[j]) &
  1340.     moveq    #0,d1
  1341.     move.w    0(a0,d0.l*2),d1
  1342.     and.l    #$FF,d1
  1343.     move.b    d1,(a2)+
  1344.     addq.l    #1,d0
  1345. L1002
  1346.     cmp.l    d2,d0
  1347.     blt.b    L1001
  1348. L1003
  1349. ;            
  1350.     bra    L1032
  1351. L1004
  1352. ;            if (ctx->Unpack.SwapBytes) 
  1353.     move.l    a4,a1
  1354.     add.l    #$E65E,a1
  1355.     tst.b    $18(a1)
  1356.     beq.b    L1009
  1357. L1005
  1358. ;               for (j=0;
  1359.     moveq    #0,d0
  1360.     bra.b    L1007
  1361. L1006
  1362. ;                  *dst++ = (((GLuint*)src)[j] & 0x
  1363.     move.l    0(a0,d0.l*4),d1
  1364.     and.l    #-$1000000,d1
  1365.     moveq    #$8,d3
  1366.     lsr.l    d3,d1
  1367.     move.b    d1,(a2)+
  1368.     addq.l    #1,d0
  1369. L1007
  1370.     cmp.l    d2,d0
  1371.     blt.b    L1006
  1372. L1008
  1373.     bra.b    L1012
  1374. L1009
  1375. ;               for (j=0;
  1376.     moveq    #0,d0
  1377.     bra.b    L1011
  1378. L1010
  1379. ;                  *dst++ = (((GLuint*)src)[j]) & 0
  1380.     move.l    0(a0,d0.l*4),d1
  1381.     and.l    #$FF,d1
  1382.     move.b    d1,(a2)+
  1383.     addq.l    #1,d0
  1384. L1011
  1385.     cmp.l    d2,d0
  1386.     blt.b    L1010
  1387. L1012
  1388. ;            
  1389.     bra    L1032
  1390. L1013
  1391. ;            if (ctx->Unpack.SwapBytes) 
  1392.     move.l    a4,a1
  1393.     add.l    #$E65E,a1
  1394.     tst.b    $18(a1)
  1395.     beq.b    L1018
  1396. L1014
  1397. ;               for (j=0;
  1398.     moveq    #0,d0
  1399.     bra.b    L1016
  1400. L1015
  1401. ;                  *dst++ = (((GLuint*)src)[j] & 0x
  1402.     move.l    0(a0,d0.l*4),d1
  1403.     and.l    #-$1000000,d1
  1404.     moveq    #$8,d3
  1405.     lsr.l    d3,d1
  1406.     move.b    d1,(a2)+
  1407.     addq.l    #1,d0
  1408. L1016
  1409.     cmp.l    d2,d0
  1410.     blt.b    L1015
  1411. L1017
  1412.     bra.b    L1021
  1413. L1018
  1414. ;               for (j=0;
  1415.     moveq    #0,d0
  1416.     bra.b    L1020
  1417. L1019
  1418. ;                  *dst++ = (((GLuint*)src)[j]) & 0
  1419.     move.l    0(a0,d0.l*4),d1
  1420.     and.l    #$FF,d1
  1421.     move.b    d1,(a2)+
  1422.     addq.l    #1,d0
  1423. L1020
  1424.     cmp.l    d2,d0
  1425.     blt.b    L1019
  1426. L1021
  1427. ;            
  1428.     bra    L1032
  1429. L1022
  1430. ;            if (ctx->Unpack.SwapBytes) 
  1431.     move.l    a4,a1
  1432.     add.l    #$E65E,a1
  1433.     tst.b    $18(a1)
  1434.     beq.b    L1027
  1435. L1023
  1436. ;               for (j=0;
  1437.     moveq    #0,d0
  1438.     bra.b    L1025
  1439. L1024
  1440. ;                  GLint value = ((GLuint*)src)[j];
  1441.     move.l    0(a0,d0.l*4),-$1C(a5)
  1442. ;                  value = ((value & 0xff000000) >>
  1443.     move.l    -$1C(a5),d1
  1444.     and.l    #-$1000000,d1
  1445.     moveq    #$18,d3
  1446.     lsr.l    d3,d1
  1447.     move.l    -$1C(a5),d3
  1448.     and.l    #$FF0000,d3
  1449.     moveq    #$8,d6
  1450.     asr.l    d6,d3
  1451.     or.l    d3,d1
  1452.     move.l    -$1C(a5),d3
  1453.     and.l    #$FF00,d3
  1454.     moveq    #$8,d6
  1455.     asl.l    d6,d3
  1456.     or.l    d3,d1
  1457.     move.l    -$1C(a5),d3
  1458.     and.l    #$FF,d3
  1459.     moveq    #$18,d6
  1460.     asl.l    d6,d3
  1461.     or.l    d3,d1
  1462.     move.l    d1,-$1C(a5)
  1463. ;                  fvalue = *((GLfloat*) &value);
  1464. ;                  *dst++ = ((GLint) fvalue) & 0xff;
  1465.     fmove.s    -$1C(a5),fp0
  1466.     fmove.l    fp0,d1
  1467.     and.l    #$FF,d1
  1468.     move.b    d1,(a2)+
  1469.     addq.l    #1,d0
  1470. L1025
  1471.     cmp.l    d2,d0
  1472.     blt.b    L1024
  1473. L1026
  1474.     bra.b    L1030
  1475. L1027
  1476. ;               for (j=0;
  1477.     moveq    #0,d0
  1478.     bra.b    L1029
  1479. L1028
  1480. ;                  GLfloat fvalue = ((GLfloat *)src)
  1481. ;                  *dst++ = ((GLint) fvalue) & 0xff;
  1482.     fmove.s    0(a0,d0.l*4),fp0
  1483.     fmove.l    fp0,d1
  1484.     and.l    #$FF,d1
  1485.     move.b    d1,(a2)+
  1486.     addq.l    #1,d0
  1487. L1029
  1488.     cmp.l    d2,d0
  1489.     blt.b    L1028
  1490. L1030
  1491. ;            
  1492.     bra.b    L1032
  1493. L1031
  1494. ;            gl_problem(ctx, "unpack_stencil_image type" )
  1495.     move.l    #L984,-(a7)
  1496.     move.l    a4,-(a7)
  1497.     jsr    _gl_problem
  1498.     addq.w    #$8,a7
  1499.     move.l    -4(a5),d0
  1500.     movem.l    (a7)+,d2-d7/a2-a4
  1501.     unlk    a5
  1502.     rts
  1503. L1032
  1504.     addq.l    #1,d4
  1505. L1033
  1506.     cmp.l    d5,d4
  1507.     blt    L991
  1508. L1034
  1509. ;            return 
  1510.     move.l    -4(a5),d0
  1511.     movem.l    (a7)+,d2-d7/a2-a4
  1512.     unlk    a5
  1513.     rts
  1514.  
  1515. L984
  1516.     dc.b    'unpack_stencil_image type',0
  1517.  
  1518.     SECTION "_unpack_bitmap:0",CODE
  1519.  
  1520.  
  1521. ;static struct gl_image *unpack_bitmap( GLcontext *ctx, GLenum format
  1522. _unpack_bitmap
  1523. L1057    EQU    -$1C
  1524.     link    a5,#L1057
  1525.     movem.l    d2-d7/a2-a4,-(a7)
  1526.     move.l    $14(a5),d4
  1527.     move.l    $10(a5),d5
  1528.     move.l    $C(a5),d7
  1529.     move.l    $8(a5),a4
  1530. L1037
  1531. ;   bytes = ((width+7)/8 * height);
  1532.     move.l    d5,d0
  1533.     addq.l    #7,d0
  1534.     divsl.l    #$8,d0
  1535.     muls.l    d4,d0
  1536.     move.l    d0,d6
  1537. ;   if (bytes>0 && pixels!=NULL) 
  1538.     move.l    d6,d0
  1539.     cmp.l    #0,d0
  1540.     ble    L1052
  1541. L1038
  1542.     move.l    $18(a5),a0
  1543.     cmp.w    #0,a0
  1544.     beq    L1052
  1545. L1039
  1546. ;      buffer = (GLubyte *) malloc( bytes );
  1547.     move.l    d6,-(a7)
  1548.     jsr    _malloc
  1549.     addq.w    #4,a7
  1550.     move.l    d0,a3
  1551. ;      if (!buffer) 
  1552.     cmp.w    #0,a3
  1553.     bne.b    L1041
  1554. L1040
  1555.     moveq    #0,d0
  1556.     movem.l    (a7)+,d2-d7/a2-a4
  1557.     unlk    a5
  1558.     rts
  1559. L1041
  1560. ;      width_in_bytes = CEILING( width, 8 );
  1561.     move.l    d5,d0
  1562.     divsl.l    #$8,d1:d0
  1563.     tst.l    d1
  1564.     bne.b    L1043
  1565. L1042
  1566.     move.l    d5,d3
  1567.     divsl.l    #$8,d3
  1568.     bra.b    L1044
  1569. L1043
  1570.     move.l    d5,d3
  1571.     divsl.l    #$8,d3
  1572.     addq.l    #1,d3
  1573. L1044
  1574. ;      dst = buffer;
  1575.     move.l    a3,a2
  1576. ;      for (i=0;
  1577.     moveq    #0,d2
  1578.     bra.b    L1048
  1579. L1045
  1580. ;         GLvoid *src = gl_pixel_addr_in_image( &ctx->Unpack
  1581.     clr.l    -(a7)
  1582.     move.l    d2,-(a7)
  1583.     clr.l    -(a7)
  1584.     pea    $1A00.w
  1585.     pea    $1900.w
  1586.     move.l    d4,-(a7)
  1587.     move.l    d5,-(a7)
  1588.     move.l    $18(a5),-(a7)
  1589.     move.l    a4,a0
  1590.     add.l    #$E65E,a0
  1591.     pea    (a0)
  1592.     jsr    _gl_pixel_addr_in_image
  1593.     add.w    #$24,a7
  1594.     move.l    d0,a0
  1595. ;         if (!src) 
  1596.     cmp.w    #0,a0
  1597.     bne.b    L1047
  1598. L1046
  1599. ;            free(buffer);
  1600.     move.l    a3,-(a7)
  1601.     jsr    _free
  1602.     addq.w    #4,a7
  1603.     moveq    #0,d0
  1604.     movem.l    (a7)+,d2-d7/a2-a4
  1605.     unlk    a5
  1606.     rts
  1607. L1047
  1608. ;         MEMCPY( dst, src,
  1609.     move.l    d3,-(a7)
  1610.     move.l    a0,-(a7)
  1611.     move.l    a2,-(a7)
  1612.     jsr    _q_memcpy
  1613.     add.w    #$C,a7
  1614. ;         dst += width_in_bytes;
  1615.     add.l    d3,a2
  1616.     addq.l    #1,d2
  1617. L1048
  1618.     cmp.l    d4,d2
  1619.     blt.b    L1045
  1620. L1049
  1621. ;      if (ctx->Unpack.LsbFirst) 
  1622.     move.l    a4,a0
  1623.     add.l    #$E65E,a0
  1624.     tst.b    $19(a0)
  1625.     beq.b    L1051
  1626. L1050
  1627. ;         gl_flip_bytes( buffer, bytes );
  1628.     move.l    d6,-(a7)
  1629.     move.l    a3,-(a7)
  1630.     jsr    _gl_flip_bytes
  1631.     addq.w    #$8,a7
  1632. L1051
  1633.     bra.b    L1053
  1634. L1052
  1635. ;      buffer = NULL;
  1636.     sub.l    a3,a3
  1637. L1053
  1638. ;   image = alloc_image();
  1639.     jsr    _alloc_image
  1640.     move.l    d0,a0
  1641. ;   if (image) 
  1642.     cmp.w    #0,a0
  1643.     beq.b    L1055
  1644. L1054
  1645. ;      image->Width = width;
  1646.     move.l    d5,(a0)
  1647. ;      image->Height = height;
  1648.     move.l    d4,4(a0)
  1649. ;      image->Depth = 1;
  1650.     move.l    #1,$8(a0)
  1651. ;      image->Components = 0;
  1652.     clr.l    $C(a0)
  1653. ;      image->Format = format;
  1654.     move.l    d7,$10(a0)
  1655. ;      image->Type = GL_BITMAP;
  1656.     move.l    #$1A00,$14(a0)
  1657. ;      image->Data = buffer;
  1658.     move.l    a3,$18(a0)
  1659. ;      image->RefCount = 0;
  1660.     clr.l    $1E(a0)
  1661.     bra.b    L1056
  1662. L1055
  1663. ;      free( buffer );
  1664.     move.l    a3,-(a7)
  1665.     jsr    _free
  1666.     addq.w    #4,a7
  1667.     moveq    #0,d0
  1668.     movem.l    (a7)+,d2-d7/a2-a4
  1669.     unlk    a5
  1670.     rts
  1671. L1056
  1672.     move.l    a0,d0
  1673.     movem.l    (a7)+,d2-d7/a2-a4
  1674.     unlk    a5
  1675.     rts
  1676.  
  1677.     SECTION "_gl_unpack_polygon_stipple:0",CODE
  1678.  
  1679.  
  1680. ;void gl_unpack_polygon_stipple( const GLcontext *ctx,
  1681.     XDEF    _gl_unpack_polygon_stipple
  1682. _gl_unpack_polygon_stipple
  1683.     movem.l    d2/d3/a2-a4,-(a7)
  1684.     move.l    $20(a7),a2
  1685.     move.l    $18(a7),a3
  1686.     move.l    $1C(a7),a4
  1687. L1058
  1688. ;   for (i = 0;
  1689.     moveq    #0,d2
  1690.     bra.b    L1060
  1691. L1059
  1692. ;      GLubyte *src = (GLubyte *) gl_pixel_addr_in_image( &ctx-
  1693.     clr.l    -(a7)
  1694.     move.l    d2,-(a7)
  1695.     clr.l    -(a7)
  1696.     pea    $1A00.w
  1697.     pea    $1900.w
  1698.     pea    $20.w
  1699.     pea    $20.w
  1700.     move.l    a4,-(a7)
  1701.     move.l    a3,a0
  1702.     add.l    #$E65E,a0
  1703.     pea    (a0)
  1704.     jsr    _gl_pixel_addr_in_image
  1705.     add.w    #$24,a7
  1706.     move.l    d0,a0
  1707. ;      dest[i] = (src[0] << 24)
  1708.     moveq    #0,d0
  1709.     move.b    (a0),d0
  1710.     moveq    #$18,d1
  1711.     asl.l    d1,d0
  1712.     moveq    #0,d1
  1713.     move.b    1(a0),d1
  1714.     moveq    #$10,d3
  1715.     asl.l    d3,d1
  1716.     or.l    d1,d0
  1717.     moveq    #0,d1
  1718.     move.b    2(a0),d1
  1719.     moveq    #$8,d3
  1720.     asl.l    d3,d1
  1721.     or.l    d1,d0
  1722.     moveq    #0,d1
  1723.     move.b    3(a0),d1
  1724.     or.l    d1,d0
  1725.     move.l    d0,0(a2,d2.l*4)
  1726.     addq.l    #1,d2
  1727. L1060
  1728.     cmp.l    #$20,d2
  1729.     blt.b    L1059
  1730. L1061
  1731. ;   if (ctx->Unpack.LsbFirst) 
  1732.     move.l    a3,a0
  1733.     add.l    #$E65E,a0
  1734.     tst.b    $19(a0)
  1735.     beq.b    L1063
  1736. L1062
  1737. ;      gl_flip_bytes( (GLubyte *) dest, 32 * 4 );
  1738.     pea    $80.w
  1739.     move.l    a2,-(a7)
  1740.     jsr    _gl_flip_bytes
  1741.     addq.w    #$8,a7
  1742. L1063
  1743.     movem.l    (a7)+,d2/d3/a2-a4
  1744.     rts
  1745.  
  1746.     SECTION "_gl_pack_polygon_stipple:0",CODE
  1747.  
  1748.  
  1749. ;void gl_pack_polygon_stipple( const GLcontext *ctx,
  1750.     XDEF    _gl_pack_polygon_stipple
  1751. _gl_pack_polygon_stipple
  1752. L1070    EQU    -$8
  1753.     link    a5,#L1070
  1754.     movem.l    d2/a2-a4,-(a7)
  1755.     move.l    $C(a5),a2
  1756.     move.l    $8(a5),a4
  1757. L1064
  1758. ;   for (i = 0;
  1759.     moveq    #0,d2
  1760.     bra    L1068
  1761. L1065
  1762. ;      GLubyte *dst = (GLubyte *) gl_pixel_addr_in_image( &ctx-
  1763.     clr.l    -(a7)
  1764.     move.l    d2,-(a7)
  1765.     clr.l    -(a7)
  1766.     pea    $1A00.w
  1767.     pea    $1900.w
  1768.     pea    $20.w
  1769.     pea    $20.w
  1770.     move.l    $10(a5),-(a7)
  1771.     move.l    a4,a0
  1772.     add.l    #$E644,a0
  1773.     pea    (a0)
  1774.     jsr    _gl_pixel_addr_in_image
  1775.     add.w    #$24,a7
  1776.     move.l    d0,a0
  1777. ;      dst[0] = (pattern[i] >> 24) & 0xff;
  1778.     move.l    0(a2,d2.l*4),d0
  1779.     moveq    #$18,d1
  1780.     lsr.l    d1,d0
  1781.     and.l    #$FF,d0
  1782.     move.b    d0,(a0)
  1783. ;      dst[1] = (pattern[i] >> 16) & 0xff;
  1784.     move.l    0(a2,d2.l*4),d0
  1785.     moveq    #$10,d1
  1786.     lsr.l    d1,d0
  1787.     and.l    #$FF,d0
  1788.     move.b    d0,1(a0)
  1789. ;      dst[2] = (pattern[i] >>  8) & 0xff;
  1790.     move.l    0(a2,d2.l*4),d0
  1791.     moveq    #$8,d1
  1792.     lsr.l    d1,d0
  1793.     and.l    #$FF,d0
  1794.     move.b    d0,2(a0)
  1795. ;      dst[3] = (pattern[i]      ) & 0xff;
  1796.     move.l    0(a2,d2.l*4),d0
  1797.     and.l    #$FF,d0
  1798.     move.b    d0,3(a0)
  1799. ;      if (ctx->Pack.LsbFirst) 
  1800.     move.l    a4,a1
  1801.     add.l    #$E644,a1
  1802.     tst.b    $19(a1)
  1803.     beq.b    L1067
  1804. L1066
  1805. ;         gl_flip_bytes( (GLubyte *) dst, 4 );
  1806.     pea    4.w
  1807.     move.l    a0,-(a7)
  1808.     jsr    _gl_flip_bytes
  1809.     addq.w    #$8,a7
  1810. L1067
  1811.     addq.l    #1,d2
  1812. L1068
  1813.     cmp.l    #$20,d2
  1814.     blt    L1065
  1815. L1069
  1816.     movem.l    (a7)+,d2/a2-a4
  1817.     unlk    a5
  1818.     rts
  1819.  
  1820.     SECTION "_unpack_ubyte_image:0",CODE
  1821.  
  1822.  
  1823. ;static struct gl_image *unpack_ubyte_image( GLcontext *ctx,
  1824. _unpack_ubyte_image
  1825. L1106    EQU    -$26
  1826.     link    a5,#L1106
  1827.     movem.l    d2-d7/a2-a4,-(a7)
  1828.     move.l    $10(a5),d3
  1829.     move.l    $C(a5),d5
  1830.     move.l    $18(a5),d7
  1831.     move.l    $8(a5),a4
  1832. L1071
  1833. ;   components = gl_components_in_format( format );
  1834.     move.l    d7,-(a7)
  1835.     jsr    _gl_components_in_format
  1836.     addq.w    #4,a7
  1837.     move.l    d0,-$C(a5)
  1838. ;   width_in_bytes = width * components * sizeof(GLubyte);
  1839.     move.l    d5,d4
  1840.     muls.l    -$C(a5),d4
  1841. ;   buffer = (GLubyte *) malloc( height * width_in_bytes * depth );
  1842.     move.l    d3,d0
  1843.     muls.l    d4,d0
  1844.     muls.l    $14(a5),d0
  1845.     move.l    d0,-(a7)
  1846.     jsr    _malloc
  1847.     addq.w    #4,a7
  1848.     move.l    d0,a2
  1849. ;   if (!buffer) 
  1850.     cmp.w    #0,a2
  1851.     bne.b    L1073
  1852. L1072
  1853.     moveq    #0,d0
  1854.     movem.l    (a7)+,d2-d7/a2-a4
  1855.     unlk    a5
  1856.     rts
  1857. L1073
  1858. ;   dst = buffer;
  1859.     move.l    a2,a3
  1860. ;   for (d=0;
  1861.     moveq    #0,d6
  1862.     bra.b    L1080
  1863. L1074
  1864. ;      for (i=0;
  1865.     moveq    #0,d2
  1866.     bra.b    L1078
  1867. L1075
  1868. ;         GLubyte *src = (GLubyte *) gl_pixel_addr_in_image(
  1869.     clr.l    -(a7)
  1870.     move.l    d2,-(a7)
  1871.     move.l    d6,-(a7)
  1872.     pea    $1401.w
  1873.     move.l    d7,-(a7)
  1874.     move.l    d3,-(a7)
  1875.     move.l    d5,-(a7)
  1876.     move.l    $1C(a5),-(a7)
  1877.     move.l    a4,a0
  1878.     add.l    #$E65E,a0
  1879.     pea    (a0)
  1880.     jsr    _gl_pixel_addr_in_image
  1881.     add.w    #$24,a7
  1882.     move.l    d0,a0
  1883. ;         if (!src) 
  1884.     cmp.w    #0,a0
  1885.     bne.b    L1077
  1886. L1076
  1887. ;            free(buffer);
  1888.     move.l    a2,-(a7)
  1889.     jsr    _free
  1890.     addq.w    #4,a7
  1891.     moveq    #0,d0
  1892.     movem.l    (a7)+,d2-d7/a2-a4
  1893.     unlk    a5
  1894.     rts
  1895. L1077
  1896. ;         MEMCPY( dst, src,
  1897.     move.l    d4,-(a7)
  1898.     move.l    a0,-(a7)
  1899.     move.l    a3,-(a7)
  1900.     jsr    _q_memcpy
  1901.     add.w    #$C,a7
  1902. ;         dst += width_in_bytes;
  1903.     move.l    d4,d0
  1904.     add.l    a3,d0
  1905.     move.l    d0,a3
  1906.     addq.l    #1,d2
  1907. L1078
  1908.     cmp.l    d3,d2
  1909.     blt.b    L1075
  1910. L1079
  1911.     move.l    d6,d0
  1912.     addq.l    #1,d0
  1913.     move.l    d0,d6
  1914. L1080
  1915.     move.l    d6,d0
  1916.     cmp.l    $14(a5),d0
  1917.     blt.b    L1074
  1918. L1081
  1919. ;   if (format == GL_BGR) 
  1920.     move.l    d7,d0
  1921.     cmp.l    #$80E0,d0
  1922.     bne.b    L1086
  1923. L1082
  1924. ;      for (i=0;
  1925.     moveq    #0,d2
  1926.     bra.b    L1084
  1927. L1083
  1928. ;         GLubyte b = buffer[i*3+0];
  1929.     move.l    d2,d0
  1930.     muls.l    #3,d0
  1931.     move.b    0(a2,d0.l),d4
  1932. ;         GLubyte r = buffer[i*3+2];
  1933.     move.l    d2,d0
  1934.     muls.l    #3,d0
  1935.     lea    2(a2),a0
  1936.     move.b    0(a0,d0.l),d1
  1937. ;         buffer[i*3+0] = r;
  1938.     move.l    d2,d0
  1939.     muls.l    #3,d0
  1940.     move.b    d1,0(a2,d0.l)
  1941. ;         buffer[i*3+2] = b;
  1942.     move.l    d2,d0
  1943.     muls.l    #3,d0
  1944.     lea    2(a2),a0
  1945.     move.b    d4,0(a0,d0.l)
  1946.     addq.l    #1,d2
  1947. L1084
  1948.     move.l    d5,d0
  1949.     muls.l    d3,d0
  1950.     cmp.l    d0,d2
  1951.     blt.b    L1083
  1952. L1085
  1953.     bra    L1095
  1954. L1086
  1955. ;   else if (format == GL_BGRA) 
  1956.     move.l    d7,d0
  1957.     cmp.l    #$80E1,d0
  1958.     bne.b    L1091
  1959. L1087
  1960. ;      for (i=0;
  1961.     moveq    #0,d2
  1962.     bra.b    L1089
  1963. L1088
  1964. ;         GLubyte b = buffer[i*4+0];
  1965.     move.l    d2,d0
  1966.     moveq    #2,d1
  1967.     asl.l    d1,d0
  1968.     move.b    0(a2,d0.l),d4
  1969. ;         GLubyte r = buffer[i*4+2];
  1970.     move.l    d2,d0
  1971.     moveq    #2,d1
  1972.     asl.l    d1,d0
  1973.     lea    2(a2),a0
  1974.     move.b    0(a0,d0.l),d1
  1975. ;         buffer[i*4+0] = r;
  1976.     move.l    d2,d0
  1977.     moveq    #2,d6
  1978.     asl.l    d6,d0
  1979.     move.b    d1,0(a2,d0.l)
  1980. ;         buffer[i*4+2] = b;
  1981.     move.l    d2,d0
  1982.     moveq    #2,d1
  1983.     asl.l    d1,d0
  1984.     lea    2(a2),a0
  1985.     move.b    d4,0(a0,d0.l)
  1986.     addq.l    #1,d2
  1987. L1089
  1988.     move.l    d5,d0
  1989.     muls.l    d3,d0
  1990.     cmp.l    d0,d2
  1991.     blt.b    L1088
  1992. L1090
  1993.     bra    L1095
  1994. L1091
  1995. ;   else if (format == GL_ABGR_EXT) 
  1996.     move.l    d7,d0
  1997.     cmp.l    #$8000,d0
  1998.     bne    L1095
  1999. L1092
  2000. ;      for (i=0;
  2001.     moveq    #0,d2
  2002.     bra.b    L1094
  2003. L1093
  2004. ;         GLubyte a = buffer[i*4+0];
  2005.     move.l    d2,d0
  2006.     moveq    #2,d1
  2007.     asl.l    d1,d0
  2008.     move.b    0(a2,d0.l),-$21(a5)
  2009. ;         GLubyte b = buffer[i*4+1];
  2010.     move.l    d2,d0
  2011.     moveq    #2,d1
  2012.     asl.l    d1,d0
  2013.     lea    1(a2),a0
  2014.     move.b    0(a0,d0.l),-$22(a5)
  2015. ;         GLubyte g = buffer[i*4+2];
  2016.     move.l    d2,d0
  2017.     moveq    #2,d1
  2018.     asl.l    d1,d0
  2019.     lea    2(a2),a0
  2020.     move.b    0(a0,d0.l),d4
  2021. ;         GLubyte r = buffer[i*4+3];
  2022.     move.l    d2,d0
  2023.     moveq    #2,d1
  2024.     asl.l    d1,d0
  2025.     lea    3(a2),a0
  2026.     move.b    0(a0,d0.l),d1
  2027. ;         buffer[i*4+0] = r;
  2028.     move.l    d2,d0
  2029.     moveq    #2,d6
  2030.     asl.l    d6,d0
  2031.     move.b    d1,0(a2,d0.l)
  2032. ;         buffer[i*4+1] = g;
  2033.     move.l    d2,d0
  2034.     moveq    #2,d1
  2035.     asl.l    d1,d0
  2036.     lea    1(a2),a0
  2037.     move.b    d4,0(a0,d0.l)
  2038. ;         buffer[i*4+2] = b;
  2039.     move.l    d2,d0
  2040.     moveq    #2,d1
  2041.     asl.l    d1,d0
  2042.     lea    2(a2),a0
  2043.     move.b    -$22(a5),0(a0,d0.l)
  2044. ;         buffer[i*4+3] = a;
  2045.     move.l    d2,d0
  2046.     moveq    #2,d1
  2047.     asl.l    d1,d0
  2048.     lea    3(a2),a0
  2049.     move.b    -$21(a5),0(a0,d0.l)
  2050.     addq.l    #1,d2
  2051. L1094
  2052.     move.l    d5,d0
  2053.     muls.l    d3,d0
  2054.     cmp.l    d0,d2
  2055.     blt    L1093
  2056. L1095
  2057. ;   image = alloc_image();
  2058.     jsr    _alloc_image
  2059.     move.l    d0,a3
  2060. ;   if (image) 
  2061.     cmp.w    #0,a3
  2062.     beq    L1104
  2063. L1096
  2064. ;      image->Width = width;
  2065.     move.l    a3,a0
  2066.     move.l    d5,(a0)
  2067. ;      image->Height = height;
  2068.     move.l    a3,a0
  2069.     move.l    d3,4(a0)
  2070. ;      image->Depth = depth;
  2071.     move.l    a3,a0
  2072.     move.l    $14(a5),$8(a0)
  2073. ;      image->Components = components;
  2074.     move.l    a3,a0
  2075.     move.l    -$C(a5),$C(a0)
  2076. ;      if (format == GL_BGR)
  2077.     move.l    d7,d0
  2078.     cmp.l    #$80E0,d0
  2079.     bne.b    L1098
  2080. L1097
  2081. ;         image->Format = GL_RGB;
  2082.     move.l    a3,a0
  2083.     move.l    #$1907,$10(a0)
  2084.     bra.b    L1103
  2085. L1098
  2086. ;      else if (format == GL_BGRA)
  2087.     move.l    d7,d0
  2088.     cmp.l    #$80E1,d0
  2089.     bne.b    L1100
  2090. L1099
  2091. ;         image->Format = GL_RGBA;
  2092.     move.l    a3,a0
  2093.     move.l    #$1908,$10(a0)
  2094.     bra.b    L1103
  2095. L1100
  2096. ;      else if (format == GL_ABGR_EXT)
  2097.     move.l    d7,d0
  2098.     cmp.l    #$8000,d0
  2099.     bne.b    L1102
  2100. L1101
  2101. ;         image->Format = GL_RGBA;
  2102.     move.l    a3,a0
  2103.     move.l    #$1908,$10(a0)
  2104.     bra.b    L1103
  2105. L1102
  2106. ;         image->Format = format;
  2107.     move.l    a3,a0
  2108.     move.l    d7,$10(a0)
  2109. L1103
  2110. ;      image->Type = GL_UNSIGNED_BYTE;
  2111.     move.l    a3,a0
  2112.     move.l    #$1401,$14(a0)
  2113. ;      image->Data = buffer;
  2114.     move.l    a3,a0
  2115.     move.l    a2,$18(a0)
  2116. ;      image->RefCount = 0;
  2117.     move.l    a3,a0
  2118.     clr.l    $1E(a0)
  2119.     bra.b    L1105
  2120. L1104
  2121. ;      free( buffer );
  2122.     move.l    a2,-(a7)
  2123.     jsr    _free
  2124.     addq.w    #4,a7
  2125. L1105
  2126.     move.l    a3,d0
  2127.     movem.l    (a7)+,d2-d7/a2-a4
  2128.     unlk    a5
  2129.     rts
  2130.  
  2131.     SECTION "_unpack_float_image:0",CODE
  2132.  
  2133.  
  2134. ;static struct gl_image *unpack_float_image( GLcontext *ctx,
  2135. _unpack_float_image
  2136. L1289    EQU    -$8C
  2137.     link    a5,#L1289
  2138.     movem.l    d2-d7/a2-a4,-(a7)
  2139.     fmovem.x fp2/fp3,-(a7)
  2140.     move.l    $8(a5),a4
  2141. L1108
  2142. ;   components = gl_components_in_format( format );
  2143.     move.l    $18(a5),-(a7)
  2144.     jsr    _gl_components_in_format
  2145.     addq.w    #4,a7
  2146.     move.l    d0,d3
  2147. ;   elems_per_row = width * components;
  2148.     move.l    $C(a5),d2
  2149.     muls.l    d3,d2
  2150. ;   image = alloc_image();
  2151.     jsr    _alloc_image
  2152.     move.l    d0,-4(a5)
  2153. ;   if (image) 
  2154.     tst.l    -4(a5)
  2155.     beq    L1119
  2156. L1109
  2157. ;      image->Width = width;
  2158.     move.l    -4(a5),a0
  2159.     move.l    $C(a5),(a0)
  2160. ;      image->Height = height;
  2161.     move.l    -4(a5),a0
  2162.     move.l    $10(a5),4(a0)
  2163. ;      image->Depth = depth;
  2164.     move.l    -4(a5),a0
  2165.     move.l    $14(a5),$8(a0)
  2166. ;      image->Components = components;
  2167.     move.l    -4(a5),a0
  2168.     move.l    d3,$C(a0)
  2169. ;      if (format == GL_BGR)
  2170.     move.l    $18(a5),d0
  2171.     cmp.l    #$80E0,d0
  2172.     bne.b    L1111
  2173. L1110
  2174. ;         image->Format = GL_RGB;
  2175.     move.l    -4(a5),a0
  2176.     move.l    #$1907,$10(a0)
  2177.     bra.b    L1116
  2178. L1111
  2179. ;      else if (format == GL_BGRA)
  2180.     move.l    $18(a5),d0
  2181.     cmp.l    #$80E1,d0
  2182.     bne.b    L1113
  2183. L1112
  2184. ;         image->Format = GL_RGBA;
  2185.     move.l    -4(a5),a0
  2186.     move.l    #$1908,$10(a0)
  2187.     bra.b    L1116
  2188. L1113
  2189. ;      else if (format == GL_ABGR_EXT)
  2190.     move.l    $18(a5),d0
  2191.     cmp.l    #$8000,d0
  2192.     bne.b    L1115
  2193. L1114
  2194. ;         image->Format = GL_RGBA;
  2195.     move.l    -4(a5),a0
  2196.     move.l    #$1908,$10(a0)
  2197.     bra.b    L1116
  2198. L1115
  2199. ;         image->Format = format;
  2200.     move.l    -4(a5),a0
  2201.     move.l    $18(a5),$10(a0)
  2202. L1116
  2203. ;      image->Type = GL_FLOAT;
  2204.     move.l    -4(a5),a0
  2205.     move.l    #$1406,$14(a0)
  2206. ;      image->Data = malloc( elems_per_row * height * depth * s
  2207.     move.l    d2,d0
  2208.     muls.l    $10(a5),d0
  2209.     muls.l    $14(a5),d0
  2210.     moveq    #2,d1
  2211.     asl.l    d1,d0
  2212.     move.l    d0,-(a7)
  2213.     jsr    _malloc
  2214.     addq.w    #4,a7
  2215.     move.l    -4(a5),a1
  2216.     move.l    d0,$18(a1)
  2217. ;      image->RefCount = 0;
  2218.     move.l    -4(a5),a0
  2219.     clr.l    $1E(a0)
  2220. ;      if (!image->Data)
  2221.     move.l    -4(a5),a1
  2222.     tst.l    $18(a1)
  2223.     bne.b    L1118
  2224. L1117
  2225.     move.l    -4(a5),d0
  2226.     fmovem.x (a7)+,fp2/fp3
  2227.     movem.l    (a7)+,d2-d7/a2-a4
  2228.     unlk    a5
  2229.     rts
  2230. L1118
  2231. ;         return 
  2232.     bra.b    L1120
  2233. L1119
  2234.     moveq    #0,d0
  2235.     fmovem.x (a7)+,fp2/fp3
  2236.     movem.l    (a7)+,d2-d7/a2-a4
  2237.     unlk    a5
  2238.     rts
  2239. L1120
  2240. ;   normalize = (format != GL_COLOR_INDEX) && (format != GL_STENCI
  2241.     moveq    #0,d0
  2242.     move.l    $18(a5),d1
  2243.     cmp.l    #$1900,d1
  2244.     beq.b    L1123
  2245. L1121
  2246.     move.l    $18(a5),d1
  2247.     cmp.l    #$1901,d1
  2248.     beq.b    L1123
  2249. L1122
  2250.     moveq    #1,d0
  2251. L1123
  2252.     move.b    d0,d4
  2253. ;   dst = (GLfloat *) image->Data;
  2254.     move.l    -4(a5),a0
  2255.     move.l    $18(a0),a2
  2256. ;   for (d=0;
  2257.     clr.l    -$1C(a5)
  2258.     bra    L1273
  2259. L1124
  2260. ;      for (i=0;
  2261.     moveq    #0,d7
  2262.     bra    L1271
  2263. L1125
  2264. ;         GLvoid *src = gl_pixel_addr_in_image( &ctx->Unpack
  2265.     clr.l    -(a7)
  2266.     move.l    d7,-(a7)
  2267.     move.l    -$1C(a5),-(a7)
  2268.     move.l    $1C(a5),-(a7)
  2269.     move.l    $18(a5),-(a7)
  2270.     move.l    $10(a5),-(a7)
  2271.     move.l    $C(a5),-(a7)
  2272.     move.l    $20(a5),-(a7)
  2273.     move.l    a4,a0
  2274.     add.l    #$E65E,a0
  2275.     pea    (a0)
  2276.     jsr    _gl_pixel_addr_in_image
  2277.     add.w    #$24,a7
  2278.     move.l    d0,a0
  2279. ;         if (!src) 
  2280.     cmp.w    #0,a0
  2281.     bne.b    L1127
  2282. L1126
  2283.     move.l    -4(a5),d0
  2284.     fmovem.x (a7)+,fp2/fp3
  2285.     movem.l    (a7)+,d2-d7/a2-a4
  2286.     unlk    a5
  2287.     rts
  2288. L1127
  2289. ;         switch (type)
  2290.     move.l    $1C(a5),d0
  2291.     cmp.l    #$8034,d0
  2292.     beq    L1245
  2293.     bgt.b    L1290
  2294.     cmp.l    #$1404,d0
  2295.     beq    L1197
  2296.     bgt.b    L1291
  2297.     cmp.l    #$1402,d0
  2298.     beq    L1163
  2299.     bgt.b    L1292
  2300.     cmp.l    #$1400,d0
  2301.     beq    L1137
  2302.     cmp.l    #$1401,d0
  2303.     beq    L1128
  2304.     bra    L1269
  2305. L1292
  2306.     bgt    L1146
  2307. L1291
  2308.     cmp.l    #$8032,d0
  2309.     beq    L1221
  2310.     bgt.b    L1293
  2311.     cmp.l    #$1405,d0
  2312.     beq    L1180
  2313.     cmp.l    #$1406,d0
  2314.     beq    L1214
  2315.     bra    L1269
  2316. L1293
  2317.     bgt    L1237
  2318. L1290
  2319.     cmp.l    #$8364,d0
  2320.     beq    L1233
  2321.     bgt.b    L1294
  2322.     cmp.l    #$8362,d0
  2323.     beq    L1225
  2324.     bgt.b    L1295
  2325.     cmp.l    #$8035,d0
  2326.     beq    L1253
  2327.     cmp.l    #$8036,d0
  2328.     beq    L1261
  2329.     bra    L1269
  2330. L1295
  2331.     bgt    L1229
  2332. L1294
  2333.     cmp.l    #$8367,d0
  2334.     beq    L1257
  2335.     bgt.b    L1296
  2336.     cmp.l    #$8365,d0
  2337.     beq    L1241
  2338.     cmp.l    #$8366,d0
  2339.     beq    L1249
  2340.     bra    L1269
  2341. L1296
  2342.     cmp.l    #$8368,d0
  2343.     beq    L1265
  2344.     bra    L1269
  2345. ;            
  2346. L1128
  2347. ;                  GLubyte *ubsrc = (GLubyte *) src;
  2348. ;                  if (normalize) 
  2349.     tst.b    d4
  2350.     beq.b    L1133
  2351. L1129
  2352. ;                     for (j=0;
  2353.     moveq    #0,d0
  2354.     bra.b    L1131
  2355. L1130
  2356. ;                        *dst++ = UBYTE_TO_FL
  2357.     moveq    #0,d1
  2358.     move.b    0(a0,d0.l),d1
  2359.     fmove.l    d1,fp0
  2360.     fmul.s    #$.3B808080,fp0
  2361.     fmove.s    fp0,(a2)+
  2362.     addq.l    #1,d0
  2363. L1131
  2364.     cmp.l    d2,d0
  2365.     blt.b    L1130
  2366. L1132
  2367.     bra.b    L1136
  2368. L1133
  2369. ;                     for (j=0;
  2370.     moveq    #0,d0
  2371.     bra.b    L1135
  2372. L1134
  2373. ;                        *dst++ = (GLfloat) u
  2374.     moveq    #0,d1
  2375.     move.b    0(a0,d0.l),d1
  2376.     fmove.l    d1,fp0
  2377.     fmove.s    fp0,(a2)+
  2378.     addq.l    #1,d0
  2379. L1135
  2380.     cmp.l    d2,d0
  2381.     blt.b    L1134
  2382. L1136
  2383. ;               
  2384.     bra    L1270
  2385. L1137
  2386. ;               if (normalize) 
  2387.     tst.b    d4
  2388.     beq.b    L1142
  2389. L1138
  2390. ;                  for (j=0;
  2391.     moveq    #0,d0
  2392.     bra.b    L1140
  2393. L1139
  2394. ;                     *dst++ = BYTE_TO_FLOAT(((G
  2395.     move.b    0(a0,d0.l),d1
  2396.     extb.l    d1
  2397.     fmove.l    d1,fp0
  2398.     fmul.s    #$.40000000,fp0
  2399.     fadd.s    #$.3F800000,fp0
  2400.     fmul.s    #$.3B808080,fp0
  2401.     fmove.s    fp0,(a2)+
  2402.     addq.l    #1,d0
  2403. L1140
  2404.     cmp.l    d2,d0
  2405.     blt.b    L1139
  2406. L1141
  2407.     bra.b    L1145
  2408. L1142
  2409. ;                  for (j=0;
  2410.     moveq    #0,d0
  2411.     bra.b    L1144
  2412. L1143
  2413. ;                     *dst++ = (GLfloat) ((GLbyt
  2414.     move.b    0(a0,d0.l),d1
  2415.     extb.l    d1
  2416.     fmove.l    d1,fp0
  2417.     fmove.s    fp0,(a2)+
  2418.     addq.l    #1,d0
  2419. L1144
  2420.     cmp.l    d2,d0
  2421.     blt.b    L1143
  2422. L1145
  2423. ;               
  2424.     bra    L1270
  2425. L1146
  2426. ;               if (ctx->Unpack.SwapBytes) 
  2427.     move.l    a4,a1
  2428.     add.l    #$E65E,a1
  2429.     tst.b    $18(a1)
  2430.     beq.b    L1154
  2431. L1147
  2432. ;                  for (j=0;
  2433.     moveq    #0,d0
  2434.     bra.b    L1152
  2435. L1148
  2436. ;                     GLushort value = ((GLushor
  2437.     move.w    0(a0,d0.l*2),d3
  2438. ;                     value = ((value >> 8) & 0x
  2439.     moveq    #0,d1
  2440.     move.w    d3,d1
  2441.     moveq    #$8,d5
  2442.     asr.l    d5,d1
  2443.     and.l    #$FF,d1
  2444.     and.l    #$FFFF,d3
  2445.     and.l    #$FF,d3
  2446.     moveq    #$8,d5
  2447.     asl.l    d5,d3
  2448.     or.l    d3,d1
  2449.     move.w    d1,d3
  2450. ;                     if (normalize) 
  2451.     tst.b    d4
  2452.     beq.b    L1150
  2453. L1149
  2454. ;                        *dst++ = USHORT_TO_F
  2455.     moveq    #0,d1
  2456.     move.w    d3,d1
  2457.     fmove.l    d1,fp0
  2458.     fmul.s    #$.37800080,fp0
  2459.     fmove.s    fp0,(a2)+
  2460.     bra.b    L1151
  2461. L1150
  2462. ;                        *dst++ = (GLfloat) v
  2463.     moveq    #0,d1
  2464.     move.w    d3,d1
  2465.     fmove.l    d1,fp0
  2466.     fmove.s    fp0,(a2)+
  2467. L1151
  2468.     addq.l    #1,d0
  2469. L1152
  2470.     cmp.l    d2,d0
  2471.     blt.b    L1148
  2472. L1153
  2473.     bra.b    L1162
  2474. L1154
  2475. ;                  if (normalize) 
  2476.     tst.b    d4
  2477.     beq.b    L1159
  2478. L1155
  2479. ;                     for (j=0;
  2480.     moveq    #0,d0
  2481.     bra.b    L1157
  2482. L1156
  2483. ;                        *dst++ = USHORT_TO_F
  2484.     moveq    #0,d1
  2485.     move.w    0(a0,d0.l*2),d1
  2486.     fmove.l    d1,fp0
  2487.     fmul.s    #$.37800080,fp0
  2488.     fmove.s    fp0,(a2)+
  2489.     addq.l    #1,d0
  2490. L1157
  2491.     cmp.l    d2,d0
  2492.     blt.b    L1156
  2493. L1158
  2494.     bra.b    L1162
  2495. L1159
  2496. ;                     for (j=0;
  2497.     moveq    #0,d0
  2498.     bra.b    L1161
  2499. L1160
  2500. ;                        *dst++ = (GLfloat) (
  2501.     moveq    #0,d1
  2502.     move.w    0(a0,d0.l*2),d1
  2503.     fmove.l    d1,fp0
  2504.     fmove.s    fp0,(a2)+
  2505.     addq.l    #1,d0
  2506. L1161
  2507.     cmp.l    d2,d0
  2508.     blt.b    L1160
  2509. L1162
  2510. ;               
  2511.     bra    L1270
  2512. L1163
  2513. ;               if (ctx->Unpack.SwapBytes) 
  2514.     move.l    a4,a1
  2515.     add.l    #$E65E,a1
  2516.     tst.b    $18(a1)
  2517.     beq.b    L1171
  2518. L1164
  2519. ;                  for (j=0;
  2520.     moveq    #0,d0
  2521.     bra.b    L1169
  2522. L1165
  2523. ;                     GLshort value = ((GLshort*)
  2524.     move.w    0(a0,d0.l*2),d3
  2525. ;                     value = ((value >> 8) & 0x
  2526.     move.w    d3,d1
  2527.     ext.l    d1
  2528.     moveq    #$8,d5
  2529.     asr.l    d5,d1
  2530.     and.l    #$FF,d1
  2531.     ext.l    d3
  2532.     and.l    #$FF,d3
  2533.     moveq    #$8,d5
  2534.     asl.l    d5,d3
  2535.     or.l    d3,d1
  2536.     move.w    d1,d3
  2537. ;                     if (normalize) 
  2538.     tst.b    d4
  2539.     beq.b    L1167
  2540. L1166
  2541. ;                        *dst++ = SHORT_TO_FL
  2542.     move.w    d3,d1
  2543.     ext.l    d1
  2544.     fmove.l    d1,fp0
  2545.     fmul.s    #$.40000000,fp0
  2546.     fadd.s    #$.3F800000,fp0
  2547.     fmul.s    #$.37800080,fp0
  2548.     fmove.s    fp0,(a2)+
  2549.     bra.b    L1168
  2550. L1167
  2551. ;                        *dst++ = (GLfloat) v
  2552.     move.w    d3,d1
  2553.     ext.l    d1
  2554.     fmove.l    d1,fp0
  2555.     fmove.s    fp0,(a2)+
  2556. L1168
  2557.     addq.l    #1,d0
  2558. L1169
  2559.     cmp.l    d2,d0
  2560.     blt.b    L1165
  2561. L1170
  2562.     bra.b    L1179
  2563. L1171
  2564. ;                  if (normalize) 
  2565.     tst.b    d4
  2566.     beq.b    L1176
  2567. L1172
  2568. ;                     for (j=0;
  2569.     moveq    #0,d0
  2570.     bra.b    L1174
  2571. L1173
  2572. ;                        *dst++ = SHORT_TO_FL
  2573.     move.w    0(a0,d0.l*2),d1
  2574.     ext.l    d1
  2575.     fmove.l    d1,fp0
  2576.     fmul.s    #$.40000000,fp0
  2577.     fadd.s    #$.3F800000,fp0
  2578.     fmul.s    #$.37800080,fp0
  2579.     fmove.s    fp0,(a2)+
  2580.     addq.l    #1,d0
  2581. L1174
  2582.     cmp.l    d2,d0
  2583.     blt.b    L1173
  2584. L1175
  2585.     bra.b    L1179
  2586. L1176
  2587. ;                     for (j=0;
  2588.     moveq    #0,d0
  2589.     bra.b    L1178
  2590. L1177
  2591. ;                        *dst++ = (GLfloat) (
  2592.     move.w    0(a0,d0.l*2),d1
  2593.     ext.l    d1
  2594.     fmove.l    d1,fp0
  2595.     fmove.s    fp0,(a2)+
  2596.     addq.l    #1,d0
  2597. L1178
  2598.     cmp.l    d2,d0
  2599.     blt.b    L1177
  2600. L1179
  2601. ;               
  2602.     bra    L1270
  2603. L1180
  2604. ;               if (ctx->Unpack.SwapBytes) 
  2605.     move.l    a4,a1
  2606.     add.l    #$E65E,a1
  2607.     tst.b    $18(a1)
  2608.     beq.b    L1188
  2609. L1181
  2610. ;                  for (j=0;
  2611.     moveq    #0,d0
  2612.     bra.b    L1186
  2613. L1182
  2614. ;                     value = ((GLuint*)src)[j];
  2615.     move.l    0(a0,d0.l*4),d1
  2616. ;                     value = ((value & 0xff0000
  2617.     move.l    d1,d3
  2618.     and.l    #-$1000000,d3
  2619.     moveq    #$18,d5
  2620.     lsr.l    d5,d3
  2621.     move.l    d1,d5
  2622.     and.l    #$FF0000,d5
  2623.     moveq    #$8,d6
  2624.     lsr.l    d6,d5
  2625.     or.l    d5,d3
  2626.     move.l    d1,d5
  2627.     and.l    #$FF00,d5
  2628.     moveq    #$8,d6
  2629.     asl.l    d6,d5
  2630.     or.l    d5,d3
  2631.     and.l    #$FF,d1
  2632.     moveq    #$18,d5
  2633.     asl.l    d5,d1
  2634.     or.l    d3,d1
  2635. ;                     if (normalize) 
  2636.     tst.b    d4
  2637.     beq.b    L1184
  2638. L1183
  2639. ;                        *dst++ = UINT_TO_FLO
  2640.     fmove.l    d1,fp0
  2641.     fmul.s    #$.2F800000,fp0
  2642.     fmove.s    fp0,(a2)+
  2643.     bra.b    L1185
  2644. L1184
  2645. ;                        *dst++ = (GLfloat) v
  2646.     fmove.l    d1,fp0
  2647.     fmove.s    fp0,(a2)+
  2648. L1185
  2649.     addq.l    #1,d0
  2650. L1186
  2651.     cmp.l    d2,d0
  2652.     blt.b    L1182
  2653. L1187
  2654.     bra.b    L1196
  2655. L1188
  2656. ;                  if (normalize) 
  2657.     tst.b    d4
  2658.     beq.b    L1193
  2659. L1189
  2660. ;                     for (j=0;
  2661.     moveq    #0,d0
  2662.     bra.b    L1191
  2663. L1190
  2664. ;                        *dst++ = UINT_TO_FLO
  2665.     fmove.l    0(a0,d0.l*4),fp0
  2666.     fmul.s    #$.2F800000,fp0
  2667.     fmove.s    fp0,(a2)+
  2668.     addq.l    #1,d0
  2669. L1191
  2670.     cmp.l    d2,d0
  2671.     blt.b    L1190
  2672. L1192
  2673.     bra.b    L1196
  2674. L1193
  2675. ;                     for (j=0;
  2676.     moveq    #0,d0
  2677.     bra.b    L1195
  2678. L1194
  2679. ;                        *dst++ = (GLfloat) (
  2680.     fmove.l    0(a0,d0.l*4),fp0
  2681.     fmove.s    fp0,(a2)+
  2682.     addq.l    #1,d0
  2683. L1195
  2684.     cmp.l    d2,d0
  2685.     blt.b    L1194
  2686. L1196
  2687. ;               
  2688.     bra    L1270
  2689. L1197
  2690. ;               if (ctx->Unpack.SwapBytes) 
  2691.     move.l    a4,a1
  2692.     add.l    #$E65E,a1
  2693.     tst.b    $18(a1)
  2694.     beq    L1205
  2695. L1198
  2696. ;                  for (j=0;
  2697.     moveq    #0,d0
  2698.     bra    L1203
  2699. L1199
  2700. ;                     value = ((GLint*)src)[j];
  2701.     move.l    0(a0,d0.l*4),d1
  2702. ;                     value = ((value & 0xff0000
  2703.     move.l    d1,d3
  2704.     and.l    #-$1000000,d3
  2705.     moveq    #$18,d5
  2706.     lsr.l    d5,d3
  2707.     move.l    d1,d5
  2708.     and.l    #$FF0000,d5
  2709.     moveq    #$8,d6
  2710.     asr.l    d6,d5
  2711.     or.l    d5,d3
  2712.     move.l    d1,d5
  2713.     and.l    #$FF00,d5
  2714.     moveq    #$8,d6
  2715.     asl.l    d6,d5
  2716.     or.l    d5,d3
  2717.     and.l    #$FF,d1
  2718.     moveq    #$18,d5
  2719.     asl.l    d5,d1
  2720.     or.l    d3,d1
  2721. ;                     if (normalize) 
  2722.     tst.b    d4
  2723.     beq.b    L1201
  2724. L1200
  2725. ;                        *dst++ = INT_TO_FLOA
  2726.     fmove.l    d1,fp0
  2727.     fmul.s    #$.40000000,fp0
  2728.     fadd.s    #$.3F800000,fp0
  2729.     fmul.s    #$.2F800000,fp0
  2730.     fmove.s    fp0,(a2)+
  2731.     bra.b    L1202
  2732. L1201
  2733. ;                        *dst++ = (GLfloat) v
  2734.     fmove.l    d1,fp0
  2735.     fmove.s    fp0,(a2)+
  2736. L1202
  2737.     addq.l    #1,d0
  2738. L1203
  2739.     cmp.l    d2,d0
  2740.     blt.b    L1199
  2741. L1204
  2742.     bra.b    L1213
  2743. L1205
  2744. ;                  if (normalize) 
  2745.     tst.b    d4
  2746.     beq.b    L1210
  2747. L1206
  2748. ;                     for (j=0;
  2749.     moveq    #0,d0
  2750.     bra.b    L1208
  2751. L1207
  2752. ;                        *dst++ = INT_TO_FLOA
  2753.     fmove.l    0(a0,d0.l*4),fp0
  2754.     fmul.s    #$.40000000,fp0
  2755.     fadd.s    #$.3F800000,fp0
  2756.     fmul.s    #$.2F800000,fp0
  2757.     fmove.s    fp0,(a2)+
  2758.     addq.l    #1,d0
  2759. L1208
  2760.     cmp.l    d2,d0
  2761.     blt.b    L1207
  2762. L1209
  2763.     bra.b    L1213
  2764. L1210
  2765. ;                     for (j=0;
  2766.     moveq    #0,d0
  2767.     bra.b    L1212
  2768. L1211
  2769. ;                        *dst++ = (GLfloat) (
  2770.     fmove.l    0(a0,d0.l*4),fp0
  2771.     fmove.s    fp0,(a2)+
  2772.     addq.l    #1,d0
  2773. L1212
  2774.     cmp.l    d2,d0
  2775.     blt.b    L1211
  2776. L1213
  2777. ;               
  2778.     bra    L1270
  2779. L1214
  2780. ;               if (ctx->Unpack.SwapBytes) 
  2781.     move.l    a4,a1
  2782.     add.l    #$E65E,a1
  2783.     tst.b    $18(a1)
  2784.     beq.b    L1219
  2785. L1215
  2786. ;                  for (j=0;
  2787.     moveq    #0,d0
  2788.     bra.b    L1217
  2789. L1216
  2790. ;                     value = ((GLuint*)src)[j];
  2791.     move.l    0(a0,d0.l*4),-$36(a5)
  2792. ;                     value = ((value & 0xff0000
  2793.     move.l    -$36(a5),d1
  2794.     and.l    #-$1000000,d1
  2795.     moveq    #$18,d3
  2796.     lsr.l    d3,d1
  2797.     move.l    -$36(a5),d3
  2798.     and.l    #$FF0000,d3
  2799.     moveq    #$8,d5
  2800.     asr.l    d5,d3
  2801.     or.l    d3,d1
  2802.     move.l    -$36(a5),d3
  2803.     and.l    #$FF00,d3
  2804.     moveq    #$8,d5
  2805.     asl.l    d5,d3
  2806.     or.l    d3,d1
  2807.     move.l    -$36(a5),d3
  2808.     and.l    #$FF,d3
  2809.     moveq    #$18,d5
  2810.     asl.l    d5,d3
  2811.     or.l    d3,d1
  2812.     move.l    d1,-$36(a5)
  2813. ;                     *dst++ = *((GLfloat*) &val
  2814.     move.l    -$36(a5),(a2)+
  2815.     addq.l    #1,d0
  2816. L1217
  2817.     cmp.l    d2,d0
  2818.     blt.b    L1216
  2819. L1218
  2820.     bra.b    L1220
  2821. L1219
  2822. ;   MEMCPY( dst, s
  2823.     move.l    d2,d0
  2824.     moveq    #2,d1
  2825.     asl.l    d1,d0
  2826.     move.l    d0,-(a7)
  2827.     move.l    a0,-(a7)
  2828.     move.l    a2,-(a7)
  2829.     jsr    _q_memcpy
  2830.     add.w    #$C,a7
  2831. ;                  dst += elems_per_row;
  2832.     move.l    d2,d0
  2833.     moveq    #2,d1
  2834.     asl.l    d1,d0
  2835.     add.l    d0,a2
  2836. L1220
  2837. ;               
  2838.     bra    L1270
  2839. L1221
  2840. ;                  GLubyte *ubsrc = (GLubyte *) src;
  2841.     move.l    a0,a1
  2842. ;                  for (j=0;
  2843.     moveq    #0,d0
  2844.     bra.b    L1223
  2845. L1222
  2846. ;                     GLubyte p = ubsrc[j];
  2847.     move.b    0(a1,d0.l),d3
  2848. ;                     *dst++ = ((p >> 5)      ) 
  2849.     moveq    #0,d1
  2850.     move.b    d3,d1
  2851.     moveq    #5,d5
  2852.     asr.l    d5,d1
  2853.     fmove.l    d1,fp0
  2854.     fmul.s    #$.3E124924,fp0
  2855.     fmove.s    fp0,(a2)+
  2856. ;                     *dst++ = ((p >> 2) & 0x7) 
  2857.     moveq    #0,d1
  2858.     move.b    d3,d1
  2859.     moveq    #2,d5
  2860.     asr.l    d5,d1
  2861.     and.l    #7,d1
  2862.     fmove.l    d1,fp0
  2863.     fmul.s    #$.3E124924,fp0
  2864.     fmove.s    fp0,(a2)+
  2865. ;                     *dst++ = ((p     ) & 0x3) 
  2866.     moveq    #0,d1
  2867.     move.b    d3,d1
  2868.     and.l    #3,d1
  2869.     fmove.l    d1,fp0
  2870.     fmul.s    #$.3EAAAAAA,fp0
  2871.     fmove.s    fp0,(a2)+
  2872.     addq.l    #1,d0
  2873. L1223
  2874.     cmp.l    d2,d0
  2875.     blt.b    L1222
  2876. L1224
  2877. ;               
  2878.     bra    L1270
  2879. L1225
  2880. ;                  GLubyte *ubsrc = (GLubyte *) src;
  2881.     move.l    a0,a1
  2882. ;                  for (j=0;
  2883.     moveq    #0,d0
  2884.     bra    L1227
  2885. L1226
  2886. ;                     GLubyte p = ubsrc[j];
  2887.     move.b    0(a1,d0.l),d3
  2888. ;                     *dst++ = ((p     ) & 0x7) 
  2889.     moveq    #0,d1
  2890.     move.b    d3,d1
  2891.     and.l    #7,d1
  2892.     fmove.l    d1,fp0
  2893.     fmul.s    #$.3E124924,fp0
  2894.     fmove.s    fp0,(a2)+
  2895. ;                     *dst++ = ((p >> 3) & 0x7) 
  2896.     moveq    #0,d1
  2897.     move.b    d3,d1
  2898.     moveq    #3,d5
  2899.     asr.l    d5,d1
  2900.     and.l    #7,d1
  2901.     fmove.l    d1,fp0
  2902.     fmul.s    #$.3E124924,fp0
  2903.     fmove.s    fp0,(a2)+
  2904. ;                     *dst++ = ((p >> 6)      ) 
  2905.     moveq    #0,d1
  2906.     move.b    d3,d1
  2907.     moveq    #6,d3
  2908.     asr.l    d3,d1
  2909.     fmove.l    d1,fp0
  2910.     fmul.s    #$.3EAAAAAA,fp0
  2911.     fmove.s    fp0,(a2)+
  2912.     addq.l    #1,d0
  2913. L1227
  2914.     cmp.l    d2,d0
  2915.     blt.b    L1226
  2916. L1228
  2917. ;               
  2918.     bra    L1270
  2919. L1229
  2920. ;                  GLushort *ussrc = (GLushort *) s
  2921.     move.l    a0,a1
  2922. ;                  for (j=0;
  2923.     moveq    #0,d0
  2924.     bra    L1231
  2925. L1230
  2926. ;                     GLushort p = ussrc[j];
  2927.     move.w    0(a1,d0.l*2),d3
  2928. ;                     *dst++ = ((p >> 11)       )
  2929.     moveq    #0,d1
  2930.     move.w    d3,d1
  2931.     moveq    #$B,d5
  2932.     asr.l    d5,d1
  2933.     fmove.l    d1,fp0
  2934.     fmul.s    #$.3D042108,fp0
  2935.     fmove.s    fp0,(a2)+
  2936. ;                     *dst++ = ((p >>  5) & 0x3f)
  2937.     moveq    #0,d1
  2938.     move.w    d3,d1
  2939.     moveq    #5,d5
  2940.     asr.l    d5,d1
  2941.     and.l    #$3F,d1
  2942.     fmove.l    d1,fp0
  2943.     fmul.s    #$.3C820820,fp0
  2944.     fmove.s    fp0,(a2)+
  2945. ;                     *dst++ = ((p      ) & 0x1f)
  2946.     moveq    #0,d1
  2947.     move.w    d3,d1
  2948.     and.l    #$1F,d1
  2949.     fmove.l    d1,fp0
  2950.     fmul.s    #$.3D042108,fp0
  2951.     fmove.s    fp0,(a2)+
  2952.     addq.l    #1,d0
  2953. L1231
  2954.     cmp.l    d2,d0
  2955.     blt.b    L1230
  2956. L1232
  2957. ;               
  2958.     bra    L1270
  2959. L1233
  2960. ;                  GLushort *ussrc = (GLushort *) s
  2961.     move.l    a0,a1
  2962. ;                  for (j=0;
  2963.     moveq    #0,d0
  2964.     bra    L1235
  2965. L1234
  2966. ;                     GLushort p = ussrc[j];
  2967.     move.w    0(a1,d0.l*2),d3
  2968. ;                     *dst++ = ((p      ) & 0x1f)
  2969.     moveq    #0,d1
  2970.     move.w    d3,d1
  2971.     and.l    #$1F,d1
  2972.     fmove.l    d1,fp0
  2973.     fmul.s    #$.3D042108,fp0
  2974.     fmove.s    fp0,(a2)+
  2975. ;                     *dst++ = ((p >>  5) & 0x3f)
  2976.     moveq    #0,d1
  2977.     move.w    d3,d1
  2978.     moveq    #5,d5
  2979.     asr.l    d5,d1
  2980.     and.l    #$3F,d1
  2981.     fmove.l    d1,fp0
  2982.     fmul.s    #$.3C820820,fp0
  2983.     fmove.s    fp0,(a2)+
  2984. ;                     *dst++ = ((p >> 11)       )
  2985.     moveq    #0,d1
  2986.     move.w    d3,d1
  2987.     moveq    #$B,d3
  2988.     asr.l    d3,d1
  2989.     fmove.l    d1,fp0
  2990.     fmul.s    #$.3D042108,fp0
  2991.     fmove.s    fp0,(a2)+
  2992.     addq.l    #1,d0
  2993. L1235
  2994.     cmp.l    d2,d0
  2995.     blt.b    L1234
  2996. L1236
  2997. ;               
  2998.     bra    L1270
  2999. L1237
  3000. ;                  GLushort *ussrc = (GLushort *) s
  3001.     move.l    a0,a1
  3002. ;                  for (j=0;
  3003.     moveq    #0,d0
  3004.     bra    L1239
  3005. L1238
  3006. ;                     GLushort p = ussrc[j];
  3007.     move.w    0(a1,d0.l*2),d3
  3008. ;                     *dst++ = ((p >> 12)      )
  3009.     moveq    #0,d1
  3010.     move.w    d3,d1
  3011.     moveq    #$C,d5
  3012.     asr.l    d5,d1
  3013.     fmove.l    d1,fp0
  3014.     fmul.s    #$.3D888888,fp0
  3015.     fmove.s    fp0,(a2)+
  3016. ;                     *dst++ = ((p >>  8) & 0xf)
  3017.     moveq    #0,d1
  3018.     move.w    d3,d1
  3019.     moveq    #$8,d5
  3020.     asr.l    d5,d1
  3021.     and.l    #$F,d1
  3022.     fmove.l    d1,fp0
  3023.     fmul.s    #$.3D888888,fp0
  3024.     fmove.s    fp0,(a2)+
  3025. ;                     *dst++ = ((p >>  4) & 0xf)
  3026.     moveq    #0,d1
  3027.     move.w    d3,d1
  3028.     moveq    #4,d5
  3029.     asr.l    d5,d1
  3030.     and.l    #$F,d1
  3031.     fmove.l    d1,fp0
  3032.     fmul.s    #$.3D888888,fp0
  3033.     fmove.s    fp0,(a2)+
  3034. ;                     *dst++ = ((p      ) & 0xf)
  3035.     moveq    #0,d1
  3036.     move.w    d3,d1
  3037.     and.l    #$F,d1
  3038.     fmove.l    d1,fp0
  3039.     fmul.s    #$.3D888888,fp0
  3040.     fmove.s    fp0,(a2)+
  3041.     addq.l    #1,d0
  3042. L1239
  3043.     cmp.l    d2,d0
  3044.     blt.b    L1238
  3045. L1240
  3046. ;               
  3047.     bra    L1270
  3048. L1241
  3049. ;                  GLushort *ussrc = (GLushort *) s
  3050.     move.l    a0,a1
  3051. ;                  for (j=0;
  3052.     moveq    #0,d0
  3053.     bra    L1243
  3054. L1242
  3055. ;                     GLushort p = ussrc[j];
  3056.     move.w    0(a1,d0.l*2),d3
  3057. ;                     *dst++ = ((p      ) & 0xf)
  3058.     moveq    #0,d1
  3059.     move.w    d3,d1
  3060.     and.l    #$F,d1
  3061.     fmove.l    d1,fp0
  3062.     fmul.s    #$.3D888888,fp0
  3063.     fmove.s    fp0,(a2)+
  3064. ;                     *dst++ = ((p >>  4) & 0xf)
  3065.     moveq    #0,d1
  3066.     move.w    d3,d1
  3067.     moveq    #4,d5
  3068.     asr.l    d5,d1
  3069.     and.l    #$F,d1
  3070.     fmove.l    d1,fp0
  3071.     fmul.s    #$.3D888888,fp0
  3072.     fmove.s    fp0,(a2)+
  3073. ;                     *dst++ = ((p >>  8) & 0xf)
  3074.     moveq    #0,d1
  3075.     move.w    d3,d1
  3076.     moveq    #$8,d5
  3077.     asr.l    d5,d1
  3078.     and.l    #$F,d1
  3079.     fmove.l    d1,fp0
  3080.     fmul.s    #$.3D888888,fp0
  3081.     fmove.s    fp0,(a2)+
  3082. ;                     *dst++ = ((p >> 12)      )
  3083.     moveq    #0,d1
  3084.     move.w    d3,d1
  3085.     moveq    #$C,d3
  3086.     asr.l    d3,d1
  3087.     fmove.l    d1,fp0
  3088.     fmul.s    #$.3D888888,fp0
  3089.     fmove.s    fp0,(a2)+
  3090.     addq.l    #1,d0
  3091. L1243
  3092.     cmp.l    d2,d0
  3093.     blt.b    L1242
  3094. L1244
  3095. ;               
  3096.     bra    L1270
  3097. L1245
  3098. ;                  GLushort *ussrc = (GLushort *) s
  3099.     move.l    a0,a1
  3100. ;                  for (j=0;
  3101.     moveq    #0,d0
  3102.     bra    L1247
  3103. L1246
  3104. ;                     GLushort p = ussrc[j];
  3105.     move.w    0(a1,d0.l*2),d3
  3106. ;                     *dst++ = ((p >> 11)       )
  3107.     moveq    #0,d1
  3108.     move.w    d3,d1
  3109.     moveq    #$B,d5
  3110.     asr.l    d5,d1
  3111.     fmove.l    d1,fp0
  3112.     fmul.s    #$.3D042108,fp0
  3113.     fmove.s    fp0,(a2)+
  3114. ;                     *dst++ = ((p >>  6) & 0x1f)
  3115.     moveq    #0,d1
  3116.     move.w    d3,d1
  3117.     moveq    #6,d5
  3118.     asr.l    d5,d1
  3119.     and.l    #$1F,d1
  3120.     fmove.l    d1,fp0
  3121.     fmul.s    #$.3D042108,fp0
  3122.     fmove.s    fp0,(a2)+
  3123. ;                     *dst++ = ((p >>  1) & 0x1f)
  3124.     moveq    #0,d1
  3125.     move.w    d3,d1
  3126.     moveq    #1,d5
  3127.     asr.l    d5,d1
  3128.     and.l    #$1F,d1
  3129.     fmove.l    d1,fp0
  3130.     fmul.s    #$.3D042108,fp0
  3131.     fmove.s    fp0,(a2)+
  3132. ;                     *dst++ = ((p      ) & 0x1)
  3133.     moveq    #0,d1
  3134.     move.w    d3,d1
  3135.     and.l    #1,d1
  3136.     fmove.l    d1,fp0
  3137.     fmul.s    #$.3F800000,fp0
  3138.     fmove.s    fp0,(a2)+
  3139.     addq.l    #1,d0
  3140. L1247
  3141.     cmp.l    d2,d0
  3142.     blt.b    L1246
  3143. L1248
  3144. ;               
  3145.     bra    L1270
  3146. L1249
  3147. ;                  GLushort *ussrc = (GLushort *) s
  3148.     move.l    a0,a1
  3149. ;                  for (j=0;
  3150.     moveq    #0,d0
  3151.     bra    L1251
  3152. L1250
  3153. ;                     GLushort p = ussrc[j];
  3154.     move.w    0(a1,d0.l*2),d3
  3155. ;                     *dst++ = ((p      ) & 0x1f)
  3156.     moveq    #0,d1
  3157.     move.w    d3,d1
  3158.     and.l    #$1F,d1
  3159.     fmove.l    d1,fp0
  3160.     fmul.s    #$.3D042108,fp0
  3161.     fmove.s    fp0,(a2)+
  3162. ;                     *dst++ = ((p >>  5) & 0x1f)
  3163.     moveq    #0,d1
  3164.     move.w    d3,d1
  3165.     moveq    #5,d5
  3166.     asr.l    d5,d1
  3167.     and.l    #$1F,d1
  3168.     fmove.l    d1,fp0
  3169.     fmul.s    #$.3D042108,fp0
  3170.     fmove.s    fp0,(a2)+
  3171. ;                     *dst++ = ((p >> 10) & 0x1f)
  3172.     moveq    #0,d1
  3173.     move.w    d3,d1
  3174.     moveq    #$A,d5
  3175.     asr.l    d5,d1
  3176.     and.l    #$1F,d1
  3177.     fmove.l    d1,fp0
  3178.     fmul.s    #$.3D042108,fp0
  3179.     fmove.s    fp0,(a2)+
  3180. ;                     *dst++ = ((p >> 15)       )
  3181.     moveq    #0,d1
  3182.     move.w    d3,d1
  3183.     moveq    #$F,d3
  3184.     asr.l    d3,d1
  3185.     fmove.l    d1,fp0
  3186.     fmul.s    #$.3F800000,fp0
  3187.     fmove.s    fp0,(a2)+
  3188.     addq.l    #1,d0
  3189. L1251
  3190.     cmp.l    d2,d0
  3191.     blt.b    L1250
  3192. L1252
  3193. ;               
  3194.     bra    L1270
  3195. L1253
  3196. ;                  GLuint *uisrc = (GLuint *) src;
  3197.     move.l    a0,a1
  3198. ;                  for (j=0;
  3199.     moveq    #0,d0
  3200.     bra    L1255
  3201. L1254
  3202. ;                     GLuint p = uisrc[j];
  3203.     move.l    0(a1,d0.l*4),d1
  3204. ;                     *dst++ = ((p >> 24)       )
  3205.     move.l    d1,d3
  3206.     moveq    #$18,d5
  3207.     lsr.l    d5,d3
  3208.     fmove.l    d3,fp0
  3209.     fmul.s    #$.3B808080,fp0
  3210.     fmove.s    fp0,(a2)+
  3211. ;                     *dst++ = ((p >> 16) & 0xff)
  3212.     move.l    d1,d3
  3213.     moveq    #$10,d5
  3214.     lsr.l    d5,d3
  3215.     and.l    #$FF,d3
  3216.     fmove.l    d3,fp0
  3217.     fmul.s    #$.3B808080,fp0
  3218.     fmove.s    fp0,(a2)+
  3219. ;                     *dst++ = ((p >>  8) & 0xff)
  3220.     move.l    d1,d3
  3221.     moveq    #$8,d5
  3222.     lsr.l    d5,d3
  3223.     and.l    #$FF,d3
  3224.     fmove.l    d3,fp0
  3225.     fmul.s    #$.3B808080,fp0
  3226.     fmove.s    fp0,(a2)+
  3227. ;                     *dst++ = ((p      ) & 0xff)
  3228.     and.l    #$FF,d1
  3229.     fmove.l    d1,fp0
  3230.     fmul.s    #$.3F800000,fp0
  3231.     fmove.s    fp0,(a2)+
  3232.     addq.l    #1,d0
  3233. L1255
  3234.     cmp.l    d2,d0
  3235.     blt.b    L1254
  3236. L1256
  3237. ;               
  3238.     bra    L1270
  3239. L1257
  3240. ;                  GLuint *uisrc = (GLuint *) src;
  3241.     move.l    a0,a1
  3242. ;                  for (j=0;
  3243.     moveq    #0,d0
  3244.     bra    L1259
  3245. L1258
  3246. ;                     GLuint p = uisrc[j];
  3247.     move.l    0(a1,d0.l*4),d1
  3248. ;                     *dst++ = ((p      ) & 0xff)
  3249.     move.l    d1,d3
  3250.     and.l    #$FF,d3
  3251.     fmove.l    d3,fp0
  3252.     fmul.s    #$.3F800000,fp0
  3253.     fmove.s    fp0,(a2)+
  3254. ;                     *dst++ = ((p >>  8) & 0xff)
  3255.     move.l    d1,d3
  3256.     moveq    #$8,d5
  3257.     lsr.l    d5,d3
  3258.     and.l    #$FF,d3
  3259.     fmove.l    d3,fp0
  3260.     fmul.s    #$.3B808080,fp0
  3261.     fmove.s    fp0,(a2)+
  3262. ;                     *dst++ = ((p >> 16) & 0xff)
  3263.     move.l    d1,d3
  3264.     moveq    #$10,d5
  3265.     lsr.l    d5,d3
  3266.     and.l    #$FF,d3
  3267.     fmove.l    d3,fp0
  3268.     fmul.s    #$.3B808080,fp0
  3269.     fmove.s    fp0,(a2)+
  3270. ;                     *dst++ = ((p >> 24)       )
  3271.     moveq    #$18,d3
  3272.     lsr.l    d3,d1
  3273.     fmove.l    d1,fp0
  3274.     fmul.s    #$.3B808080,fp0
  3275.     fmove.s    fp0,(a2)+
  3276.     addq.l    #1,d0
  3277. L1259
  3278.     cmp.l    d2,d0
  3279.     blt.b    L1258
  3280. L1260
  3281. ;               
  3282.     bra    L1270
  3283. L1261
  3284. ;                  GLuint *uisrc = (GLuint *) src;
  3285.     move.l    a0,a1
  3286. ;                  for (j=0;
  3287.     moveq    #0,d0
  3288.     bra    L1263
  3289. L1262
  3290. ;                     GLuint p = uisrc[j];
  3291.     move.l    0(a1,d0.l*4),d1
  3292. ;                     *dst++ = ((p >> 22)       
  3293.     move.l    d1,d3
  3294.     moveq    #$16,d5
  3295.     lsr.l    d5,d3
  3296.     fmove.l    d3,fp0
  3297.     fmul.s    #$.3A802008,fp0
  3298.     fmove.s    fp0,(a2)+
  3299. ;                     *dst++ = ((p >> 12) & 0x3f
  3300.     move.l    d1,d3
  3301.     moveq    #$C,d5
  3302.     lsr.l    d5,d3
  3303.     and.l    #$3FF,d3
  3304.     fmove.l    d3,fp0
  3305.     fmul.s    #$.3A802008,fp0
  3306.     fmove.s    fp0,(a2)+
  3307. ;                     *dst++ = ((p >>  2) & 0x3f
  3308.     move.l    d1,d3
  3309.     moveq    #2,d5
  3310.     lsr.l    d5,d3
  3311.     and.l    #$3FF,d3
  3312.     fmove.l    d3,fp0
  3313.     fmul.s    #$.3A802008,fp0
  3314.     fmove.s    fp0,(a2)+
  3315. ;                     *dst++ = ((p      ) & 0x3 
  3316.     and.l    #3,d1
  3317.     fmove.l    d1,fp0
  3318.     fmul.s    #$.3EAAAAAA,fp0
  3319.     fmove.s    fp0,(a2)+
  3320.     addq.l    #1,d0
  3321. L1263
  3322.     cmp.l    d2,d0
  3323.     blt.b    L1262
  3324. L1264
  3325. ;               
  3326.     bra    L1270
  3327. L1265
  3328. ;                  GLuint *uisrc = (GLuint *) src;
  3329.     move.l    a0,a1
  3330. ;                  for (j=0;
  3331.     moveq    #0,d0
  3332.     bra    L1267
  3333. L1266
  3334. ;                     GLuint p = uisrc[j];
  3335.     move.l    0(a1,d0.l*4),d1
  3336. ;                     *dst++ = ((p      ) & 0x3f
  3337.     move.l    d1,d3
  3338.     and.l    #$3FF,d3
  3339.     fmove.l    d3,fp0
  3340.     fmul.s    #$.3A802008,fp0
  3341.     fmove.s    fp0,(a2)+
  3342. ;                     *dst++ = ((p >> 10) & 0x3f
  3343.     move.l    d1,d3
  3344.     moveq    #$A,d5
  3345.     lsr.l    d5,d3
  3346.     and.l    #$3FF,d3
  3347.     fmove.l    d3,fp0
  3348.     fmul.s    #$.3A802008,fp0
  3349.     fmove.s    fp0,(a2)+
  3350. ;                     *dst++ = ((p >> 20) & 0x3f
  3351.     move.l    d1,d3
  3352.     moveq    #$14,d5
  3353.     lsr.l    d5,d3
  3354.     and.l    #$3FF,d3
  3355.     fmove.l    d3,fp0
  3356.     fmul.s    #$.3A802008,fp0
  3357.     fmove.s    fp0,(a2)+
  3358. ;                     *dst++ = ((p >> 30)       
  3359.     moveq    #$1E,d3
  3360.     lsr.l    d3,d1
  3361.     fmove.l    d1,fp0
  3362.     fmul.s    #$.3EAAAAAA,fp0
  3363.     fmove.s    fp0,(a2)+
  3364.     addq.l    #1,d0
  3365. L1267
  3366.     cmp.l    d2,d0
  3367.     blt.b    L1266
  3368. L1268
  3369. ;               
  3370.     bra.b    L1270
  3371. L1269
  3372. ;               gl_problem(ctx, "unpack_float_image ty
  3373.     move.l    #L1107,-(a7)
  3374.     move.l    a4,-(a7)
  3375.     jsr    _gl_problem
  3376.     addq.w    #$8,a7
  3377.     move.l    -4(a5),d0
  3378.     fmovem.x (a7)+,fp2/fp3
  3379.     movem.l    (a7)+,d2-d7/a2-a4
  3380.     unlk    a5
  3381.     rts
  3382. L1270
  3383.     move.l    d7,d0
  3384.     addq.l    #1,d0
  3385.     move.l    d0,d7
  3386. L1271
  3387.     move.l    d7,d0
  3388.     cmp.l    $10(a5),d0
  3389.     blt    L1125
  3390. L1272
  3391.     addq.l    #1,-$1C(a5)
  3392. L1273
  3393.     move.l    -$1C(a5),d0
  3394.     cmp.l    $14(a5),d0
  3395.     blt    L1124
  3396. L1274
  3397. ;               return 
  3398. ;   if (format == GL_BGR) 
  3399.     move.l    $18(a5),d0
  3400.     cmp.l    #$80E0,d0
  3401.     bne    L1279
  3402. L1275
  3403. ;      GLfloat *buffer = (GLfloat *) image->Data;
  3404.     move.l    -4(a5),a1
  3405.     move.l    $18(a1),a0
  3406. ;      for (i=0;
  3407.     moveq    #0,d7
  3408.     bra.b    L1277
  3409. L1276
  3410. ;         GLfloat b = buffer[i*3+0];
  3411.     move.l    d7,d0
  3412.     muls.l    #3,d0
  3413.     fmove.s    0(a0,d0.l*4),fp1
  3414. ;         GLfloat r = buffer[i*3+2];
  3415.     move.l    d7,d0
  3416.     muls.l    #3,d0
  3417.     lea    $8(a0),a1
  3418.     fmove.s    0(a1,d0.l*4),fp0
  3419. ;         buffer[i*3+0] = r;
  3420.     move.l    d7,d0
  3421.     muls.l    #3,d0
  3422.     fmove.s    fp0,0(a0,d0.l*4)
  3423. ;         buffer[i*3+2] = b;
  3424.     move.l    d7,d0
  3425.     muls.l    #3,d0
  3426.     lea    $8(a0),a1
  3427.     fmove.s    fp1,0(a1,d0.l*4)
  3428.     move.l    d7,d0
  3429.     addq.l    #1,d0
  3430.     move.l    d0,d7
  3431. L1277
  3432.     move.l    $C(a5),d0
  3433.     muls.l    $10(a5),d0
  3434.     muls.l    $14(a5),d0
  3435.     move.l    d7,d1
  3436.     cmp.l    d0,d1
  3437.     blt.b    L1276
  3438. L1278
  3439.     bra    L1288
  3440. L1279
  3441. ;   else if (format == GL_BGRA) 
  3442.     move.l    $18(a5),d0
  3443.     cmp.l    #$80E1,d0
  3444.     bne    L1284
  3445. L1280
  3446. ;      GLfloat *buffer = (GLfloat *) image->Data;
  3447.     move.l    -4(a5),a1
  3448.     move.l    $18(a1),a0
  3449. ;      for (i=0;
  3450.     moveq    #0,d7
  3451.     bra.b    L1282
  3452. L1281
  3453. ;         GLfloat b = buffer[i*4+0];
  3454.     move.l    d7,d0
  3455.     moveq    #2,d1
  3456.     asl.l    d1,d0
  3457.     fmove.s    0(a0,d0.l*4),fp1
  3458. ;         GLfloat r = buffer[i*4+2];
  3459.     move.l    d7,d0
  3460.     moveq    #2,d1
  3461.     asl.l    d1,d0
  3462.     lea    $8(a0),a1
  3463.     fmove.s    0(a1,d0.l*4),fp0
  3464. ;         buffer[i*4+0] = r;
  3465.     move.l    d7,d0
  3466.     moveq    #2,d1
  3467.     asl.l    d1,d0
  3468.     fmove.s    fp0,0(a0,d0.l*4)
  3469. ;         buffer[i*4+2] = b;
  3470.     move.l    d7,d0
  3471.     moveq    #2,d1
  3472.     asl.l    d1,d0
  3473.     lea    $8(a0),a1
  3474.     fmove.s    fp1,0(a1,d0.l*4)
  3475.     move.l    d7,d0
  3476.     addq.l    #1,d0
  3477.     move.l    d0,d7
  3478. L1282
  3479.     move.l    $C(a5),d0
  3480.     muls.l    $10(a5),d0
  3481.     muls.l    $14(a5),d0
  3482.     move.l    d7,d1
  3483.     cmp.l    d0,d1
  3484.     blt.b    L1281
  3485. L1283
  3486.     bra    L1288
  3487. L1284
  3488. ;   else if (format == GL_ABGR_EXT) 
  3489.     move.l    $18(a5),d0
  3490.     cmp.l    #$8000,d0
  3491.     bne    L1288
  3492. L1285
  3493. ;      GLfloat *buffer = (GLfloat *) image->Data;
  3494.     move.l    -4(a5),a1
  3495.     move.l    $18(a1),a0
  3496. ;      for (i=0;
  3497.     moveq    #0,d7
  3498.     bra    L1287
  3499. L1286
  3500. ;         GLfloat a = buffer[i*4+0];
  3501.     move.l    d7,d0
  3502.     moveq    #2,d1
  3503.     asl.l    d1,d0
  3504.     fmove.s    0(a0,d0.l*4),fp3
  3505. ;         GLfloat b = buffer[i*4+1];
  3506.     move.l    d7,d0
  3507.     moveq    #2,d1
  3508.     asl.l    d1,d0
  3509.     lea    4(a0),a1
  3510.     fmove.s    0(a1,d0.l*4),fp2
  3511. ;         GLfloat g = buffer[i*4+2];
  3512.     move.l    d7,d0
  3513.     moveq    #2,d1
  3514.     asl.l    d1,d0
  3515.     lea    $8(a0),a1
  3516.     fmove.s    0(a1,d0.l*4),fp1
  3517. ;         GLfloat r = buffer[i*4+3];
  3518.     move.l    d7,d0
  3519.     moveq    #2,d1
  3520.     asl.l    d1,d0
  3521.     lea    $C(a0),a1
  3522.     fmove.s    0(a1,d0.l*4),fp0
  3523. ;         buffer[i*4+0] = r;
  3524.     move.l    d7,d0
  3525.     moveq    #2,d1
  3526.     asl.l    d1,d0
  3527.     fmove.s    fp0,0(a0,d0.l*4)
  3528. ;         buffer[i*4+1] = g;
  3529.     move.l    d7,d0
  3530.     moveq    #2,d1
  3531.     asl.l    d1,d0
  3532.     lea    4(a0),a1
  3533.     fmove.s    fp1,0(a1,d0.l*4)
  3534. ;         buffer[i*4+2] = b;
  3535.     move.l    d7,d0
  3536.     moveq    #2,d1
  3537.     asl.l    d1,d0
  3538.     lea    $8(a0),a1
  3539.     fmove.s    fp2,0(a1,d0.l*4)
  3540. ;         buffer[i*4+3] = a;
  3541.     move.l    d7,d0
  3542.     moveq    #2,d1
  3543.     asl.l    d1,d0
  3544.     lea    $C(a0),a1
  3545.     fmove.s    fp3,0(a1,d0.l*4)
  3546.     move.l    d7,d0
  3547.     addq.l    #1,d0
  3548.     move.l    d0,d7
  3549. L1287
  3550.     move.l    $C(a5),d0
  3551.     muls.l    $10(a5),d0
  3552.     muls.l    $14(a5),d0
  3553.     move.l    d7,d1
  3554.     cmp.l    d0,d1
  3555.     blt    L1286
  3556. L1288
  3557.     move.l    -4(a5),d0
  3558.     fmovem.x (a7)+,fp2/fp3
  3559.     movem.l    (a7)+,d2-d7/a2-a4
  3560.     unlk    a5
  3561.     rts
  3562.  
  3563. L1107
  3564.     dc.b    'unpack_float_image type',0
  3565.  
  3566.     SECTION "_gl_unpack_bitmap:0",CODE
  3567.  
  3568.  
  3569. ;struct gl_image *gl_unpack_bitmap( GLcontext *ctx,
  3570.     XDEF    _gl_unpack_bitmap
  3571. _gl_unpack_bitmap
  3572.     movem.l    $8(a7),d0/d1/a1
  3573.     move.l    4(a7),a0
  3574. L1297
  3575.     move.l    a1,-(a7)
  3576.     pea    $1A00.w
  3577.     pea    $1900.w
  3578.     move.l    d1,-(a7)
  3579.     move.l    d0,-(a7)
  3580.     move.l    a0,-(a7)
  3581.     jsr    _gl_unpack_image
  3582.     add.w    #$18,a7
  3583.     rts
  3584.  
  3585.     SECTION "_gl_unpack_image:0",CODE
  3586.  
  3587.  
  3588. ;struct gl_image *gl_unpack_image( GLcontext *ctx,
  3589.     XDEF    _gl_unpack_image
  3590. _gl_unpack_image
  3591.     movem.l    d2/d3,-(a7)
  3592.     movem.l    $10(a7),d0-d3/a1
  3593.     move.l    $C(a7),a0
  3594. L1298
  3595.     move.l    a1,-(a7)
  3596.     move.l    d3,-(a7)
  3597.     move.l    d2,-(a7)
  3598.     pea    1.w
  3599.     move.l    d1,-(a7)
  3600.     move.l    d0,-(a7)
  3601.     move.l    a0,-(a7)
  3602.     jsr    _gl_unpack_image3D
  3603.     add.w    #$1C,a7
  3604.     movem.l    (a7)+,d2/d3
  3605.     rts
  3606.  
  3607.     SECTION "_gl_unpack_image3D:0",CODE
  3608.  
  3609.  
  3610. ;struct gl_image *gl_unpack_image3D( GLcontext *ctx,
  3611.     XDEF    _gl_unpack_image3D
  3612. _gl_unpack_image3D
  3613.     movem.l    d2-d4,-(a7)
  3614.     movem.l    $20(a7),d0/d3/a1
  3615.     movem.l    $18(a7),d1/d4
  3616.     move.l    $14(a7),d2
  3617.     move.l    $10(a7),a0
  3618. L1299
  3619. ;   if (width <= 0 || height <= 0 || depth <= 0) 
  3620.     cmp.l    #0,d2
  3621.     ble.b    L1302
  3622. L1300
  3623.     cmp.l    #0,d1
  3624.     ble.b    L1302
  3625. L1301
  3626.     cmp.l    #0,d4
  3627.     bgt.b    L1303
  3628. L1302
  3629.     move.l    d3,-(a7)
  3630.     move.l    d0,-(a7)
  3631.     move.l    d4,-(a7)
  3632.     move.l    d1,-(a7)
  3633.     move.l    d2,-(a7)
  3634.     jsr    _alloc_error_image
  3635.     add.w    #$14,a7
  3636.     movem.l    (a7)+,d2-d4
  3637.     rts
  3638. L1303
  3639. ;   if (type==GL_BITMAP) 
  3640.     cmp.l    #$1A00,d3
  3641.     bne.b    L1308
  3642. L1304
  3643. ;      if (format != GL_COLOR_INDEX && format != GL_STENCIL_IND
  3644.     cmp.l    #$1900,d0
  3645.     beq.b    L1307
  3646. L1305
  3647.     cmp.l    #$1901,d0
  3648.     beq.b    L1307
  3649. L1306
  3650.     move.l    d3,-(a7)
  3651.     move.l    d0,-(a7)
  3652.     move.l    d4,-(a7)
  3653.     move.l    d1,-(a7)
  3654.     move.l    d2,-(a7)
  3655.     jsr    _alloc_error_image
  3656.     add.w    #$14,a7
  3657.     movem.l    (a7)+,d2-d4
  3658.     rts
  3659. L1307
  3660.     move.l    a1,-(a7)
  3661.     move.l    d1,-(a7)
  3662.     move.l    d2,-(a7)
  3663.     move.l    d0,-(a7)
  3664.     move.l    a0,-(a7)
  3665.     jsr    _unpack_bitmap
  3666.     add.w    #$14,a7
  3667.     movem.l    (a7)+,d2-d4
  3668.     rts
  3669. L1308
  3670. ;   else if (format==GL_DEPTH_COMPONENT) 
  3671.     cmp.l    #$1902,d0
  3672.     bne.b    L1310
  3673. L1309
  3674.     move.l    a1,-(a7)
  3675.     move.l    d1,-(a7)
  3676.     move.l    d2,-(a7)
  3677.     move.l    d3,-(a7)
  3678.     move.l    a0,-(a7)
  3679.     jsr    _unpack_depth_image
  3680.     add.w    #$14,a7
  3681.     movem.l    (a7)+,d2-d4
  3682.     rts
  3683. L1310
  3684. ;   else if (format==GL_STENCIL_INDEX) 
  3685.     cmp.l    #$1901,d0
  3686.     bne.b    L1312
  3687. L1311
  3688.     move.l    a1,-(a7)
  3689.     move.l    d1,-(a7)
  3690.     move.l    d2,-(a7)
  3691.     move.l    d3,-(a7)
  3692.     move.l    a0,-(a7)
  3693.     jsr    _unpack_stencil_image
  3694.     add.w    #$14,a7
  3695.     movem.l    (a7)+,d2-d4
  3696.     rts
  3697. L1312
  3698. ;   else if (type==GL_UNSIGNED_BYTE) 
  3699.     cmp.l    #$1401,d3
  3700.     bne.b    L1314
  3701. L1313
  3702.     move.l    a1,-(a7)
  3703.     move.l    d0,-(a7)
  3704.     move.l    d4,-(a7)
  3705.     move.l    d1,-(a7)
  3706.     move.l    d2,-(a7)
  3707.     move.l    a0,-(a7)
  3708.     jsr    _unpack_ubyte_image
  3709.     add.w    #$18,a7
  3710.     movem.l    (a7)+,d2-d4
  3711.     rts
  3712. L1314
  3713.     move.l    a1,-(a7)
  3714.     move.l    d3,-(a7)
  3715.     move.l    d0,-(a7)
  3716.     move.l    d4,-(a7)
  3717.     move.l    d1,-(a7)
  3718.     move.l    d2,-(a7)
  3719.     move.l    a0,-(a7)
  3720.     jsr    _unpack_float_image
  3721.     add.w    #$1C,a7
  3722.     movem.l    (a7)+,d2-d4
  3723.     rts
  3724.  
  3725.     SECTION "_gl_scale_bias_map_image_data:0",CODE
  3726.  
  3727.  
  3728. ;void gl_scale_bias_map_image_data( const GLcontext *ctx,
  3729.     XDEF    _gl_scale_bias_map_image_data
  3730. _gl_scale_bias_map_image_data
  3731.     movem.l    d2-d4/a2-a4,-(a7)
  3732.     fmovem.x fp2/fp3/fp4,-(a7)
  3733.     movem.l    $48(a7),d1/a2
  3734.     move.l    $44(a7),a0
  3735.     move.l    $40(a7),a4
  3736. L1317
  3737. ;   start = row * image->Width * image->Components;
  3738.     move.l    d1,d3
  3739.     muls.l    (a0),d3
  3740.     muls.l    $C(a0),d3
  3741. ;   for (i=0;
  3742.     moveq    #0,d1
  3743.     bra    L1332
  3744. L1318
  3745. ;      GLint pos = start+i;
  3746.     move.l    d3,d0
  3747.     add.l    d1,d0
  3748. ;      if (image->Type == GL_UNSIGNED_BYTE) 
  3749.     move.l    $14(a0),d2
  3750.     cmp.l    #$1401,d2
  3751.     bne    L1324
  3752. L1319
  3753. ;         const GLubyte *data = (GLubyte *) image->Data;
  3754.     move.l    $18(a0),a1
  3755. ;         switch (image->Format)
  3756.     move.l    $10(a0),d2
  3757.     cmp.l    #$1903,d2
  3758.     beq.b    L1320
  3759.     cmp.l    #$1907,d2
  3760.     beq.b    L1321
  3761.     bra    L1322
  3762. ;            
  3763. L1320
  3764. ;               red   = data[pos] * (1.0F/255.0F);
  3765.     move.b    0(a1,d0.l),d0
  3766.     and.l    #$FF,d0
  3767.     fmove.l    d0,fp0
  3768.     fmul.s    #$.3B808080,fp0
  3769. ;               green = 0;
  3770.     fmove.s    #$.00000000,fp2
  3771. ;               blue  = 0;
  3772.     fmove.s    #$.00000000,fp1
  3773. ;               alpha = 0;
  3774.     fmove.s    #$.00000000,fp3
  3775. ;               
  3776.     bra    L1323
  3777. L1321
  3778. ;               red   = data[pos*3+0] * (1.0F/255.0F);
  3779.     move.l    d0,d2
  3780.     muls.l    #3,d2
  3781.     add.l    a1,d2
  3782.     move.l    d2,a3
  3783.     moveq    #0,d2
  3784.     move.b    (a3),d2
  3785.     fmove.l    d2,fp0
  3786.     fmul.s    #$.3B808080,fp0
  3787. ;               green = data[pos*3+1] * (1.0F/255.0F);
  3788.     moveq    #1,d2
  3789.     add.l    a1,d2
  3790.     move.l    d2,a3
  3791.     move.l    d0,d2
  3792.     muls.l    #3,d2
  3793.     add.l    a3,d2
  3794.     move.l    d2,a3
  3795.     moveq    #0,d2
  3796.     move.b    (a3),d2
  3797.     fmove.l    d2,fp2
  3798.     fmul.s    #$.3B808080,fp2
  3799. ;               blue  = data[pos*3+2] * (1.0F/255.0F);
  3800.     muls.l    #3,d0
  3801.     lea    2(a1),a1
  3802.     move.b    0(a1,d0.l),d0
  3803.     and.l    #$FF,d0
  3804.     fmove.l    d0,fp1
  3805.     fmul.s    #$.3B808080,fp1
  3806. ;               alpha = 0;
  3807.     fmove.s    #$.00000000,fp3
  3808. ;               
  3809.     bra.b    L1323
  3810. L1322
  3811. ;               gl_problem(ctx, "bad image format in g
  3812.     move.l    #L1315,-(a7)
  3813.     move.l    a4,-(a7)
  3814.     jsr    _gl_problem
  3815.     addq.w    #$8,a7
  3816.     fmovem.x (a7)+,fp2/fp3/fp4
  3817.     movem.l    (a7)+,d2-d4/a2-a4
  3818.     rts
  3819. L1323
  3820. ;               return;
  3821.     bra    L1331
  3822. L1324
  3823. ;      else if (image->Type == GL_FLOAT) 
  3824.     move.l    $14(a0),d2
  3825.     cmp.l    #$1406,d2
  3826.     bne    L1330
  3827. L1325
  3828. ;         const GLubyte *data = (GLubyte *) image->Data;
  3829.     move.l    $18(a0),a1
  3830. ;         switch (image->Format)
  3831.     move.l    $10(a0),d2
  3832.     cmp.l    #$1903,d2
  3833.     beq.b    L1326
  3834.     cmp.l    #$1907,d2
  3835.     beq.b    L1327
  3836.     bra    L1328
  3837. ;            
  3838. L1326
  3839. ;               red   = data[pos];
  3840.     move.b    0(a1,d0.l),d0
  3841.     and.l    #$FF,d0
  3842.     fmove.l    d0,fp0
  3843. ;               green = 0;
  3844.     fmove.s    #$.00000000,fp2
  3845. ;               blue  = 0;
  3846.     fmove.s    #$.00000000,fp1
  3847. ;               alpha = 0;
  3848.     fmove.s    #$.00000000,fp3
  3849. ;               
  3850.     bra.b    L1329
  3851. L1327
  3852. ;               red   = data[pos*3+0];
  3853.     move.l    d0,d2
  3854.     muls.l    #3,d2
  3855.     add.l    a1,d2
  3856.     move.l    d2,a3
  3857.     moveq    #0,d2
  3858.     move.b    (a3),d2
  3859.     fmove.l    d2,fp0
  3860. ;               green = data[pos*3+1];
  3861.     moveq    #1,d2
  3862.     add.l    a1,d2
  3863.     move.l    d2,a3
  3864.     move.l    d0,d2
  3865.     muls.l    #3,d2
  3866.     add.l    a3,d2
  3867.     move.l    d2,a3
  3868.     moveq    #0,d2
  3869.     move.b    (a3),d2
  3870.     fmove.l    d2,fp2
  3871. ;               blue  = data[pos*3+2];
  3872.     muls.l    #3,d0
  3873.     lea    2(a1),a1
  3874.     move.b    0(a1,d0.l),d0
  3875.     and.l    #$FF,d0
  3876.     fmove.l    d0,fp1
  3877. ;               alpha = 0;
  3878.     fmove.s    #$.00000000,fp3
  3879. ;               
  3880.     bra.b    L1329
  3881. L1328
  3882. ;               gl_problem(ctx, "bad image format in g
  3883.     move.l    #L1315,-(a7)
  3884.     move.l    a4,-(a7)
  3885.     jsr    _gl_problem
  3886.     addq.w    #$8,a7
  3887.     fmovem.x (a7)+,fp2/fp3/fp4
  3888.     movem.l    (a7)+,d2-d4/a2-a4
  3889.     rts
  3890. L1329
  3891. ;               return;
  3892.     bra.b    L1331
  3893. L1330
  3894. ;         gl_problem(ctx, "Bad image type in gl_scale_...ima
  3895.     move.l    #L1316,-(a7)
  3896.     move.l    a4,-(a7)
  3897.     jsr    _gl_problem
  3898.     addq.w    #$8,a7
  3899.     fmovem.x (a7)+,fp2/fp3/fp4
  3900.     movem.l    (a7)+,d2-d4/a2-a4
  3901.     rts
  3902. L1331
  3903. ;      result[i*4+0] = (GLubyte) (red   * 255.0);
  3904.     fmul.d    #$.406FE000.00000000,fp0
  3905.     fmove.l    fp0,d0
  3906.     move.b    d0,d2
  3907.     move.l    d1,d0
  3908.     moveq    #2,d4
  3909.     asl.l    d4,d0
  3910.     move.b    d2,0(a2,d0.l)
  3911. ;      result[i*4+1] = (GLubyte) (green * 255.0);
  3912.     fmove.x    fp2,fp0
  3913.     fmul.d    #$.406FE000.00000000,fp0
  3914.     fmove.l    fp0,d0
  3915.     move.b    d0,d2
  3916.     move.l    d1,d0
  3917.     moveq    #2,d4
  3918.     asl.l    d4,d0
  3919.     lea    1(a2),a1
  3920.     move.b    d2,0(a1,d0.l)
  3921. ;      result[i*4+2] = (GLubyte) (blue  * 255.0);
  3922.     fmove.x    fp1,fp0
  3923.     fmul.d    #$.406FE000.00000000,fp0
  3924.     fmove.l    fp0,d0
  3925.     move.b    d0,d2
  3926.     move.l    d1,d0
  3927.     moveq    #2,d4
  3928.     asl.l    d4,d0
  3929.     lea    2(a2),a1
  3930.     move.b    d2,0(a1,d0.l)
  3931. ;      result[i*4+3] = (GLubyte) (alpha * 255.0);
  3932.     fmove.x    fp3,fp0
  3933.     fmul.d    #$.406FE000.00000000,fp0
  3934.     fmove.l    fp0,d0
  3935.     move.b    d0,d2
  3936.     move.l    d1,d0
  3937.     moveq    #2,d4
  3938.     asl.l    d4,d0
  3939.     lea    3(a2),a1
  3940.     move.b    d2,0(a1,d0.l)
  3941.     addq.l    #1,d1
  3942. L1332
  3943.     cmp.l    (a0),d1
  3944.     blt    L1318
  3945. L1333
  3946.     fmovem.x (a7)+,fp2/fp3/fp4
  3947.     movem.l    (a7)+,d2-d4/a2-a4
  3948.     rts
  3949.  
  3950. L1316
  3951.     dc.b    'Bad image type in gl_scale_...image_data',0
  3952. L1315
  3953.     dc.b    'bad image format in gl_scale...image_data',0
  3954.  
  3955.     SECTION "_gl_pack_rgba_span:0",CODE
  3956.  
  3957.  
  3958. ;void gl_pack_rgba_span( const GLcontext *ctx,
  3959.     XDEF    _gl_pack_rgba_span
  3960. _gl_pack_rgba_span
  3961. L1771    EQU    -$7D4C
  3962.     link    a5,#L1771
  3963.     movem.l    d2-d4/a2-a4,-(a7)
  3964.     fmovem.x fp2/fp3/fp4/fp5,-(a7)
  3965.     movem.l    $C(a5),d2/a0
  3966.     movem.l    $14(a5),d3/d4/a2
  3967.     move.l    $8(a5),a4
  3968. L1336
  3969. ;   if (!ctx->Pixel.ScaleOrBiasRGBA && !ctx->Pixel.MapColorFlag &&
  3970.     move.l    a4,a1
  3971.     add.l    #$B168,a1
  3972.     tst.b    $24(a1)
  3973.     bne.b    L1341
  3974. L1337
  3975.     move.l    a4,a1
  3976.     add.l    #$B168,a1
  3977.     tst.b    $36(a1)
  3978.     bne.b    L1341
  3979. L1338
  3980.     cmp.l    #$1908,d3
  3981.     bne.b    L1341
  3982. L1339
  3983.     cmp.l    #$1401,d4
  3984.     bne.b    L1341
  3985. L1340
  3986. ;MEMCPY( destinati
  3987.     moveq    #2,d0
  3988.     asl.l    d0,d2
  3989.     move.l    d2,-(a7)
  3990.     move.l    a0,-(a7)
  3991.     move.l    a2,-(a7)
  3992.     jsr    _q_memcpy
  3993.     add.w    #$C,a7
  3994.     bra    L1770
  3995. L1341
  3996. ;      GLfloat rscale = 1.0F / 255.0F;
  3997.     fmove.s    #$.3B808080,fp4
  3998. ;      GLfloat gscale = 1.0F / 255.0F;
  3999.     fmove.s    #$.3B808080,fp3
  4000. ;      GLfloat bscale = 1.0F / 255.0F;
  4001.     fmove.s    #$.3B808080,fp2
  4002. ;      GLfloat ascale = 1.0F / 255.0F;
  4003.     fmove.s    #$.3B808080,fp1
  4004. ;      for (i=0;
  4005.     moveq    #0,d0
  4006.     bra.b    L1343
  4007. L1342
  4008. ;         red[i]   = rgba[i][RCOMP] * rscale;
  4009.     moveq    #0,d1
  4010.     move.b    0(a0,d0.l*4),d1
  4011.     fmove.l    d1,fp0
  4012.     fmul.x    fp4,fp0
  4013.     lea    -$190C(a5),a1
  4014.     fmove.s    fp0,0(a1,d0.l*4)
  4015. ;         green[i] = rgba[i][GCOMP] * gscale;
  4016.     lea    0(a0,d0.l*4),a1
  4017.     moveq    #0,d1
  4018.     move.b    1(a1),d1
  4019.     fmove.l    d1,fp0
  4020.     fmul.x    fp3,fp0
  4021.     lea    -$320C(a5),a1
  4022.     fmove.s    fp0,0(a1,d0.l*4)
  4023. ;         blue[i]  = rgba[i][BCOMP] * bscale;
  4024.     lea    0(a0,d0.l*4),a1
  4025.     moveq    #0,d1
  4026.     move.b    2(a1),d1
  4027.     fmove.l    d1,fp0
  4028.     fmul.x    fp2,fp0
  4029.     lea    -$4B0C(a5),a1
  4030.     fmove.s    fp0,0(a1,d0.l*4)
  4031. ;         alpha[i] = rgba[i][ACOMP] * ascale;
  4032.     lea    0(a0,d0.l*4),a1
  4033.     moveq    #0,d1
  4034.     move.b    3(a1),d1
  4035.     fmove.l    d1,fp0
  4036.     fmul.x    fp1,fp0
  4037.     lea    -$640C(a5),a1
  4038.     fmove.s    fp0,0(a1,d0.l*4)
  4039.     addq.l    #1,d0
  4040. L1343
  4041.     cmp.l    d2,d0
  4042.     blo.b    L1342
  4043. L1344
  4044. ;      if (ctx->Pixel.ScaleOrBiasRGBA) 
  4045.     move.l    a4,a0
  4046.     add.l    #$B168,a0
  4047.     tst.b    $24(a0)
  4048.     beq.b    L1346
  4049. L1345
  4050. ;         gl_scale_and_bias_color( ctx, n, red, green, blue,
  4051.     pea    -$640C(a5)
  4052.     pea    -$4B0C(a5)
  4053.     pea    -$320C(a5)
  4054.     pea    -$190C(a5)
  4055.     move.l    d2,-(a7)
  4056.     move.l    a4,-(a7)
  4057.     jsr    _gl_scale_and_bias_color
  4058.     add.w    #$18,a7
  4059. L1346
  4060. ;      if (ctx->Pixel.MapColorFlag) 
  4061.     move.l    a4,a0
  4062.     add.l    #$B168,a0
  4063.     tst.b    $36(a0)
  4064.     beq.b    L1348
  4065. L1347
  4066. ;         gl_map_color( ctx, n, red, green, blue, alpha );
  4067.     pea    -$640C(a5)
  4068.     pea    -$4B0C(a5)
  4069.     pea    -$320C(a5)
  4070.     pea    -$190C(a5)
  4071.     move.l    d2,-(a7)
  4072.     move.l    a4,-(a7)
  4073.     jsr    _gl_map_color
  4074.     add.w    #$18,a7
  4075. L1348
  4076. ;      if (format==GL_LUMINANCE || format==GL_LUMINANCE_ALPHA) 
  4077.     cmp.l    #$1909,d3
  4078.     beq.b    L1350
  4079. L1349
  4080.     cmp.l    #$190A,d3
  4081.     bne.b    L1359
  4082. L1350
  4083. ;         for (i=0;
  4084.     moveq    #0,d0
  4085.     bra.b    L1358
  4086. L1351
  4087. ;            GLfloat sum = red[i] + green[i] + blue[i];
  4088.     lea    -$190C(a5),a0
  4089.     fmove.s    0(a0,d0.l*4),fp0
  4090.     lea    -$320C(a5),a0
  4091.     fadd.s    0(a0,d0.l*4),fp0
  4092.     lea    -$4B0C(a5),a0
  4093.     fadd.s    0(a0,d0.l*4),fp0
  4094. ;            luminance[i] = CLAMP( sum, 0.0F, 1.0F );
  4095.     fcmp.s    #$.00000000,fp0
  4096.     fboge.b    L1353
  4097. L1352
  4098.     fmove.s    #$.00000000,fp0
  4099.     bra.b    L1357
  4100. L1353
  4101.     fcmp.s    #$.3F800000,fp0
  4102.     fbole.b    L1355
  4103. L1354
  4104.     fmove.s    #$.3F800000,fp0
  4105. L1355
  4106. L1356
  4107. L1357
  4108.     lea    -$7D0C(a5),a0
  4109.     fmove.s    fp0,0(a0,d0.l*4)
  4110.     addq.l    #1,d0
  4111. L1358
  4112.     cmp.l    d2,d0
  4113.     blo.b    L1351
  4114. L1359
  4115. ;      switch (type)
  4116.     cmp.l    #$8034,d4
  4117.     beq    L1699
  4118.     bgt.b    L1772
  4119.     cmp.l    #$1404,d4
  4120.     beq    L1579
  4121.     bgt.b    L1773
  4122.     cmp.l    #$1402,d4
  4123.     beq    L1490
  4124.     bgt.b    L1774
  4125.     cmp.l    #$1400,d4
  4126.     beq    L1403
  4127.     cmp.l    #$1401,d4
  4128.     beq    L1360
  4129.     bra    L1769
  4130. L1774
  4131.     bgt    L1445
  4132. L1773
  4133.     cmp.l    #$8032,d4
  4134.     beq    L1669
  4135.     bgt.b    L1775
  4136.     cmp.l    #$1405,d4
  4137.     beq    L1534
  4138.     cmp.l    #$1406,d4
  4139.     beq    L1624
  4140.     bra    L1769
  4141. L1775
  4142.     bgt    L1689
  4143. L1772
  4144.     cmp.l    #$8364,d4
  4145.     beq    L1684
  4146.     bgt.b    L1776
  4147.     cmp.l    #$8362,d4
  4148.     beq    L1674
  4149.     bgt.b    L1777
  4150.     cmp.l    #$8035,d4
  4151.     beq    L1709
  4152.     cmp.l    #$8036,d4
  4153.     beq    L1739
  4154.     bra    L1769
  4155. L1777
  4156.     bgt    L1679
  4157. L1776
  4158.     cmp.l    #$8367,d4
  4159.     beq    L1724
  4160.     bgt.b    L1778
  4161.     cmp.l    #$8365,d4
  4162.     beq    L1694
  4163.     cmp.l    #$8366,d4
  4164.     beq    L1704
  4165.     bra    L1769
  4166. L1778
  4167.     cmp.l    #$8368,d4
  4168.     beq    L1754
  4169.     bra    L1769
  4170. ;         
  4171. L1360
  4172. ;               GLubyte *dst = (GLubyte *) destination;
  4173.     move.l    a2,a0
  4174. ;               switch (format)
  4175.     cmp.l    #$1909,d3
  4176.     beq    L1373
  4177.     bgt.b    L1779
  4178.     cmp.l    #$1905,d3
  4179.     beq    L1369
  4180.     bgt.b    L1780
  4181.     cmp.l    #$1903,d3
  4182.     beq.b    L1361
  4183.     cmp.l    #$1904,d3
  4184.     beq.b    L1365
  4185.     bra    L1401
  4186. L1780
  4187.     cmp.l    #$1907,d3
  4188.     beq    L1381
  4189.     cmp.l    #$1908,d3
  4190.     beq    L1385
  4191.     bra    L1401
  4192. L1779
  4193.     cmp.l    #$80E0,d3
  4194.     beq    L1389
  4195.     bgt.b    L1781
  4196.     cmp.l    #$190A,d3
  4197.     beq    L1377
  4198.     cmp.l    #$8000,d3
  4199.     beq    L1397
  4200.     bra    L1401
  4201. L1781
  4202.     cmp.l    #$80E1,d3
  4203.     beq    L1393
  4204.     bra    L1401
  4205. ;                  
  4206. L1361
  4207. ;                     for (i=0;
  4208.     moveq    #0,d0
  4209.     bra.b    L1363
  4210. L1362
  4211. ;                        dst[i] = FLOAT_TO_UB
  4212.     lea    -$190C(a5),a1
  4213.     fmove.s    0(a1,d0.l*4),fp0
  4214.     fmul.s    #$.437F0000,fp0
  4215.     fmove.l    fp0,d1
  4216.     move.b    d1,0(a0,d0.l)
  4217.     addq.l    #1,d0
  4218. L1363
  4219.     cmp.l    d2,d0
  4220.     blo.b    L1362
  4221. L1364
  4222. ;                     
  4223.     bra    L1402
  4224. L1365
  4225. ;                     for (i=0;
  4226.     moveq    #0,d0
  4227.     bra.b    L1367
  4228. L1366
  4229. ;                        dst[i] = FLOAT_TO_UB
  4230.     lea    -$320C(a5),a1
  4231.     fmove.s    0(a1,d0.l*4),fp0
  4232.     fmul.s    #$.437F0000,fp0
  4233.     fmove.l    fp0,d1
  4234.     move.b    d1,0(a0,d0.l)
  4235.     addq.l    #1,d0
  4236. L1367
  4237.     cmp.l    d2,d0
  4238.     blo.b    L1366
  4239. L1368
  4240. ;                     
  4241.     bra    L1402
  4242. L1369
  4243. ;                     for (i=0;
  4244.     moveq    #0,d0
  4245.     bra.b    L1371
  4246. L1370
  4247. ;                        dst[i] = FLOAT_TO_UB
  4248.     lea    -$4B0C(a5),a1
  4249.     fmove.s    0(a1,d0.l*4),fp0
  4250.     fmul.s    #$.437F0000,fp0
  4251.     fmove.l    fp0,d1
  4252.     move.b    d1,0(a0,d0.l)
  4253.     addq.l    #1,d0
  4254. L1371
  4255.     cmp.l    d2,d0
  4256.     blo.b    L1370
  4257. L1372
  4258. ;                     
  4259.     bra    L1402
  4260. L1373
  4261. ;                     for (i=0;
  4262.     moveq    #0,d0
  4263.     bra.b    L1375
  4264. L1374
  4265. ;                        dst[i] = FLOAT_TO_UB
  4266.     lea    -$7D0C(a5),a1
  4267.     fmove.s    0(a1,d0.l*4),fp0
  4268.     fmul.s    #$.437F0000,fp0
  4269.     fmove.l    fp0,d1
  4270.     move.b    d1,0(a0,d0.l)
  4271.     addq.l    #1,d0
  4272. L1375
  4273.     cmp.l    d2,d0
  4274.     blo.b    L1374
  4275. L1376
  4276. ;                     
  4277.     bra    L1402
  4278. L1377
  4279. ;                     for (i=0;
  4280.     moveq    #0,d0
  4281.     bra.b    L1379
  4282. L1378
  4283. ;                        dst[i*2+0] = FLOAT_T
  4284.     lea    -$7D0C(a5),a1
  4285.     fmove.s    0(a1,d0.l*4),fp0
  4286.     fmul.s    #$.437F0000,fp0
  4287.     fmove.l    fp0,d1
  4288.     move.b    d1,d3
  4289.     move.l    d0,d1
  4290.     moveq    #1,d4
  4291.     asl.l    d4,d1
  4292.     move.b    d3,0(a0,d1.l)
  4293. ;                        dst[i*2+1] = FLOAT_T
  4294.     lea    -$640C(a5),a1
  4295.     fmove.s    0(a1,d0.l*4),fp0
  4296.     fmul.s    #$.437F0000,fp0
  4297.     fmove.l    fp0,d1
  4298.     move.b    d1,d3
  4299.     move.l    d0,d1
  4300.     moveq    #1,d4
  4301.     asl.l    d4,d1
  4302.     addq.l    #1,d1
  4303.     move.b    d3,0(a0,d1.l)
  4304.     addq.l    #1,d0
  4305. L1379
  4306.     cmp.l    d2,d0
  4307.     blo.b    L1378
  4308. L1380
  4309. ;                     
  4310.     bra    L1402
  4311. L1381
  4312. ;                     for (i=0;
  4313.     moveq    #0,d0
  4314.     bra    L1383
  4315. L1382
  4316. ;                        dst[i*3+0] = FLOAT_T
  4317.     lea    -$190C(a5),a1
  4318.     fmove.s    0(a1,d0.l*4),fp0
  4319.     fmul.s    #$.437F0000,fp0
  4320.     fmove.l    fp0,d1
  4321.     move.b    d1,d3
  4322.     move.l    d0,d1
  4323.     mulu.l    #3,d1
  4324.     move.b    d3,0(a0,d1.l)
  4325. ;                        dst[i*3+1] = FLOAT_T
  4326.     lea    -$320C(a5),a1
  4327.     fmove.s    0(a1,d0.l*4),fp0
  4328.     fmul.s    #$.437F0000,fp0
  4329.     fmove.l    fp0,d1
  4330.     move.b    d1,d3
  4331.     move.l    d0,d1
  4332.     mulu.l    #3,d1
  4333.     addq.l    #1,d1
  4334.     move.b    d3,0(a0,d1.l)
  4335. ;                        dst[i*3+2] = FLOAT_T
  4336.     lea    -$4B0C(a5),a1
  4337.     fmove.s    0(a1,d0.l*4),fp0
  4338.     fmul.s    #$.437F0000,fp0
  4339.     fmove.l    fp0,d1
  4340.     move.b    d1,d3
  4341.     move.l    d0,d1
  4342.     mulu.l    #3,d1
  4343.     addq.l    #2,d1
  4344.     move.b    d3,0(a0,d1.l)
  4345.     addq.l    #1,d0
  4346. L1383
  4347.     cmp.l    d2,d0
  4348.     blo    L1382
  4349. L1384
  4350. ;                     
  4351.     bra    L1402
  4352. L1385
  4353. ;                     for (i=0;
  4354.     moveq    #0,d0
  4355.     bra    L1387
  4356. L1386
  4357. ;                        dst[i*4+0] = FLOAT_T
  4358.     lea    -$190C(a5),a1
  4359.     fmove.s    0(a1,d0.l*4),fp0
  4360.     fmul.s    #$.437F0000,fp0
  4361.     fmove.l    fp0,d1
  4362.     move.b    d1,d3
  4363.     move.l    d0,d1
  4364.     moveq    #2,d4
  4365.     asl.l    d4,d1
  4366.     move.b    d3,0(a0,d1.l)
  4367. ;                        dst[i*4+1] = FLOAT_T
  4368.     lea    -$320C(a5),a1
  4369.     fmove.s    0(a1,d0.l*4),fp0
  4370.     fmul.s    #$.437F0000,fp0
  4371.     fmove.l    fp0,d1
  4372.     move.b    d1,d3
  4373.     move.l    d0,d1
  4374.     moveq    #2,d4
  4375.     asl.l    d4,d1
  4376.     addq.l    #1,d1
  4377.     move.b    d3,0(a0,d1.l)
  4378. ;                        dst[i*4+2] = FLOAT_T
  4379.     lea    -$4B0C(a5),a1
  4380.     fmove.s    0(a1,d0.l*4),fp0
  4381.     fmul.s    #$.437F0000,fp0
  4382.     fmove.l    fp0,d1
  4383.     move.b    d1,d3
  4384.     move.l    d0,d1
  4385.     moveq    #2,d4
  4386.     asl.l    d4,d1
  4387.     addq.l    #2,d1
  4388.     move.b    d3,0(a0,d1.l)
  4389. ;                        dst[i*4+3] = FLOAT_T
  4390.     lea    -$640C(a5),a1
  4391.     fmove.s    0(a1,d0.l*4),fp0
  4392.     fmul.s    #$.437F0000,fp0
  4393.     fmove.l    fp0,d1
  4394.     move.b    d1,d3
  4395.     move.l    d0,d1
  4396.     moveq    #2,d4
  4397.     asl.l    d4,d1
  4398.     addq.l    #3,d1
  4399.     move.b    d3,0(a0,d1.l)
  4400.     addq.l    #1,d0
  4401. L1387
  4402.     cmp.l    d2,d0
  4403.     blo    L1386
  4404. L1388
  4405. ;                     
  4406.     bra    L1402
  4407. L1389
  4408. ;                     for (i=0;
  4409.     moveq    #0,d0
  4410.     bra    L1391
  4411. L1390
  4412. ;                        dst[i*3+0] = FLOAT_T
  4413.     lea    -$4B0C(a5),a1
  4414.     fmove.s    0(a1,d0.l*4),fp0
  4415.     fmul.s    #$.437F0000,fp0
  4416.     fmove.l    fp0,d1
  4417.     move.b    d1,d3
  4418.     move.l    d0,d1
  4419.     mulu.l    #3,d1
  4420.     move.b    d3,0(a0,d1.l)
  4421. ;                        dst[i*3+1] = FLOAT_T
  4422.     lea    -$320C(a5),a1
  4423.     fmove.s    0(a1,d0.l*4),fp0
  4424.     fmul.s    #$.437F0000,fp0
  4425.     fmove.l    fp0,d1
  4426.     move.b    d1,d3
  4427.     move.l    d0,d1
  4428.     mulu.l    #3,d1
  4429.     addq.l    #1,d1
  4430.     move.b    d3,0(a0,d1.l)
  4431. ;                        dst[i*3+2] = FLOAT_T
  4432.     lea    -$190C(a5),a1
  4433.     fmove.s    0(a1,d0.l*4),fp0
  4434.     fmul.s    #$.437F0000,fp0
  4435.     fmove.l    fp0,d1
  4436.     move.b    d1,d3
  4437.     move.l    d0,d1
  4438.     mulu.l    #3,d1
  4439.     addq.l    #2,d1
  4440.     move.b    d3,0(a0,d1.l)
  4441.     addq.l    #1,d0
  4442. L1391
  4443.     cmp.l    d2,d0
  4444.     blo    L1390
  4445. L1392
  4446. ;                     
  4447.     bra    L1402
  4448. L1393
  4449. ;                     for (i=0;
  4450.     moveq    #0,d0
  4451.     bra    L1395
  4452. L1394
  4453. ;                        dst[i*4+0] = FLOAT_T
  4454.     lea    -$4B0C(a5),a1
  4455.     fmove.s    0(a1,d0.l*4),fp0
  4456.     fmul.s    #$.437F0000,fp0
  4457.     fmove.l    fp0,d1
  4458.     move.b    d1,d3
  4459.     move.l    d0,d1
  4460.     moveq    #2,d4
  4461.     asl.l    d4,d1
  4462.     move.b    d3,0(a0,d1.l)
  4463. ;                        dst[i*4+1] = FLOAT_T
  4464.     lea    -$320C(a5),a1
  4465.     fmove.s    0(a1,d0.l*4),fp0
  4466.     fmul.s    #$.437F0000,fp0
  4467.     fmove.l    fp0,d1
  4468.     move.b    d1,d3
  4469.     move.l    d0,d1
  4470.     moveq    #2,d4
  4471.     asl.l    d4,d1
  4472.     addq.l    #1,d1
  4473.     move.b    d3,0(a0,d1.l)
  4474. ;                        dst[i*4+2] = FLOAT_T
  4475.     lea    -$190C(a5),a1
  4476.     fmove.s    0(a1,d0.l*4),fp0
  4477.     fmul.s    #$.437F0000,fp0
  4478.     fmove.l    fp0,d1
  4479.     move.b    d1,d3
  4480.     move.l    d0,d1
  4481.     moveq    #2,d4
  4482.     asl.l    d4,d1
  4483.     addq.l    #2,d1
  4484.     move.b    d3,0(a0,d1.l)
  4485. ;                        dst[i*4+3] = FLOAT_T
  4486.     lea    -$640C(a5),a1
  4487.     fmove.s    0(a1,d0.l*4),fp0
  4488.     fmul.s    #$.437F0000,fp0
  4489.     fmove.l    fp0,d1
  4490.     move.b    d1,d3
  4491.     move.l    d0,d1
  4492.     moveq    #2,d4
  4493.     asl.l    d4,d1
  4494.     addq.l    #3,d1
  4495.     move.b    d3,0(a0,d1.l)
  4496.     addq.l    #1,d0
  4497. L1395
  4498.     cmp.l    d2,d0
  4499.     blo    L1394
  4500. L1396
  4501. ;                     
  4502.     bra    L1402
  4503. L1397
  4504. ;                     for (i=0;
  4505.     moveq    #0,d0
  4506.     bra    L1399
  4507. L1398
  4508. ;                        dst[i*4+0] = FLOAT_T
  4509.     lea    -$640C(a5),a1
  4510.     fmove.s    0(a1,d0.l*4),fp0
  4511.     fmul.s    #$.437F0000,fp0
  4512.     fmove.l    fp0,d1
  4513.     move.b    d1,d3
  4514.     move.l    d0,d1
  4515.     moveq    #2,d4
  4516.     asl.l    d4,d1
  4517.     move.b    d3,0(a0,d1.l)
  4518. ;                        dst[i*4+1] = FLOAT_T
  4519.     lea    -$4B0C(a5),a1
  4520.     fmove.s    0(a1,d0.l*4),fp0
  4521.     fmul.s    #$.437F0000,fp0
  4522.     fmove.l    fp0,d1
  4523.     move.b    d1,d3
  4524.     move.l    d0,d1
  4525.     moveq    #2,d4
  4526.     asl.l    d4,d1
  4527.     addq.l    #1,d1
  4528.     move.b    d3,0(a0,d1.l)
  4529. ;                        dst[i*4+2] = FLOAT_T
  4530.     lea    -$320C(a5),a1
  4531.     fmove.s    0(a1,d0.l*4),fp0
  4532.     fmul.s    #$.437F0000,fp0
  4533.     fmove.l    fp0,d1
  4534.     move.b    d1,d3
  4535.     move.l    d0,d1
  4536.     moveq    #2,d4
  4537.     asl.l    d4,d1
  4538.     addq.l    #2,d1
  4539.     move.b    d3,0(a0,d1.l)
  4540. ;                        dst[i*4+3] = FLOAT_T
  4541.     lea    -$190C(a5),a1
  4542.     fmove.s    0(a1,d0.l*4),fp0
  4543.     fmul.s    #$.437F0000,fp0
  4544.     fmove.l    fp0,d1
  4545.     move.b    d1,d3
  4546.     move.l    d0,d1
  4547.     moveq    #2,d4
  4548.     asl.l    d4,d1
  4549.     addq.l    #3,d1
  4550.     move.b    d3,0(a0,d1.l)
  4551.     addq.l    #1,d0
  4552. L1399
  4553.     cmp.l    d2,d0
  4554.     blo    L1398
  4555. L1400
  4556. ;                     
  4557.     bra.b    L1402
  4558. L1401
  4559. ;                     gl_problem(ctx, "bad forma
  4560.     move.l    #L1334,-(a7)
  4561.     move.l    a4,-(a7)
  4562.     jsr    _gl_problem
  4563.     addq.w    #$8,a7
  4564. L1402
  4565. ;        
  4566.     bra    L1770
  4567. L1403
  4568. ;               GLbyte *dst = (GLbyte *) destination;
  4569.     move.l    a2,a0
  4570. ;               switch (format)
  4571.     cmp.l    #$1909,d3
  4572.     beq    L1416
  4573.     bgt.b    L1782
  4574.     cmp.l    #$1905,d3
  4575.     beq    L1412
  4576.     bgt.b    L1783
  4577.     cmp.l    #$1903,d3
  4578.     beq.b    L1404
  4579.     cmp.l    #$1904,d3
  4580.     beq    L1408
  4581.     bra    L1443
  4582. L1783
  4583.     cmp.l    #$1907,d3
  4584.     beq    L1424
  4585.     cmp.l    #$1908,d3
  4586.     beq    L1428
  4587.     bra    L1443
  4588. L1782
  4589.     cmp.l    #$80E0,d3
  4590.     beq    L1432
  4591.     bgt.b    L1784
  4592.     cmp.l    #$190A,d3
  4593.     beq    L1420
  4594.     cmp.l    #$8000,d3
  4595.     beq    L1439
  4596.     bra    L1443
  4597. L1784
  4598.     cmp.l    #$80E1,d3
  4599.     beq    L1436
  4600.     bra    L1443
  4601. ;                  
  4602. L1404
  4603. ;                     for (i=0;
  4604.     moveq    #0,d0
  4605.     bra.b    L1406
  4606. L1405
  4607. ;                        dst[i] = FLOAT_TO_BY
  4608.     lea    -$190C(a5),a1
  4609.     fmove.s    0(a1,d0.l*4),fp0
  4610.     fmul.s    #$.437F0000,fp0
  4611.     fmove.l    fp0,d1
  4612.     subq.l    #1,d1
  4613.     divsl.l    #2,d1
  4614.     move.b    d1,0(a0,d0.l)
  4615.     addq.l    #1,d0
  4616. L1406
  4617.     cmp.l    d2,d0
  4618.     blo.b    L1405
  4619. L1407
  4620. ;                     
  4621.     bra    L1444
  4622. L1408
  4623. ;                     for (i=0;
  4624.     moveq    #0,d0
  4625.     bra.b    L1410
  4626. L1409
  4627. ;                        dst[i] = FLOAT_TO_BY
  4628.     lea    -$320C(a5),a1
  4629.     fmove.s    0(a1,d0.l*4),fp0
  4630.     fmul.s    #$.437F0000,fp0
  4631.     fmove.l    fp0,d1
  4632.     subq.l    #1,d1
  4633.     divsl.l    #2,d1
  4634.     move.b    d1,0(a0,d0.l)
  4635.     addq.l    #1,d0
  4636. L1410
  4637.     cmp.l    d2,d0
  4638.     blo.b    L1409
  4639. L1411
  4640. ;                     
  4641.     bra    L1444
  4642. L1412
  4643. ;                     for (i=0;
  4644.     moveq    #0,d0
  4645.     bra.b    L1414
  4646. L1413
  4647. ;                        dst[i] = FLOAT_TO_BY
  4648.     lea    -$4B0C(a5),a1
  4649.     fmove.s    0(a1,d0.l*4),fp0
  4650.     fmul.s    #$.437F0000,fp0
  4651.     fmove.l    fp0,d1
  4652.     subq.l    #1,d1
  4653.     divsl.l    #2,d1
  4654.     move.b    d1,0(a0,d0.l)
  4655.     addq.l    #1,d0
  4656. L1414
  4657.     cmp.l    d2,d0
  4658.     blo.b    L1413
  4659. L1415
  4660. ;                     
  4661.     bra    L1444
  4662. L1416
  4663. ;                     for (i=0;
  4664.     moveq    #0,d0
  4665.     bra.b    L1418
  4666. L1417
  4667. ;                        dst[i] = FLOAT_TO_BY
  4668.     lea    -$7D0C(a5),a1
  4669.     fmove.s    0(a1,d0.l*4),fp0
  4670.     fmul.s    #$.437F0000,fp0
  4671.     fmove.l    fp0,d1
  4672.     subq.l    #1,d1
  4673.     divsl.l    #2,d1
  4674.     move.b    d1,0(a0,d0.l)
  4675.     addq.l    #1,d0
  4676. L1418
  4677.     cmp.l    d2,d0
  4678.     blo.b    L1417
  4679. L1419
  4680. ;                     
  4681.     bra    L1444
  4682. L1420
  4683. ;                     for (i=0;
  4684.     moveq    #0,d0
  4685.     bra.b    L1422
  4686. L1421
  4687. ;                        dst[i*2+0] = FLOAT_T
  4688.     lea    -$7D0C(a5),a1
  4689.     fmove.s    0(a1,d0.l*4),fp0
  4690.     fmul.s    #$.437F0000,fp0
  4691.     fmove.l    fp0,d1
  4692.     subq.l    #1,d1
  4693.     divsl.l    #2,d1
  4694.     move.b    d1,d3
  4695.     move.l    d0,d1
  4696.     moveq    #1,d4
  4697.     asl.l    d4,d1
  4698.     move.b    d3,0(a0,d1.l)
  4699. ;                        dst[i*2+1] = FLOAT_T
  4700.     lea    -$640C(a5),a1
  4701.     fmove.s    0(a1,d0.l*4),fp0
  4702.     fmul.s    #$.437F0000,fp0
  4703.     fmove.l    fp0,d1
  4704.     subq.l    #1,d1
  4705.     divsl.l    #2,d1
  4706.     move.b    d1,d3
  4707.     move.l    d0,d1
  4708.     moveq    #1,d4
  4709.     asl.l    d4,d1
  4710.     addq.l    #1,d1
  4711.     move.b    d3,0(a0,d1.l)
  4712.     addq.l    #1,d0
  4713. L1422
  4714.     cmp.l    d2,d0
  4715.     blo.b    L1421
  4716. L1423
  4717. ;                     
  4718.     bra    L1444
  4719. L1424
  4720. ;                     for (i=0;
  4721.     moveq    #0,d0
  4722.     bra    L1426
  4723. L1425
  4724. ;                        dst[i*3+0] = FLOAT_T
  4725.     lea    -$190C(a5),a1
  4726.     fmove.s    0(a1,d0.l*4),fp0
  4727.     fmul.s    #$.437F0000,fp0
  4728.     fmove.l    fp0,d1
  4729.     subq.l    #1,d1
  4730.     divsl.l    #2,d1
  4731.     move.b    d1,d3
  4732.     move.l    d0,d1
  4733.     mulu.l    #3,d1
  4734.     move.b    d3,0(a0,d1.l)
  4735. ;                        dst[i*3+1] = FLOAT_T
  4736.     lea    -$320C(a5),a1
  4737.     fmove.s    0(a1,d0.l*4),fp0
  4738.     fmul.s    #$.437F0000,fp0
  4739.     fmove.l    fp0,d1
  4740.     subq.l    #1,d1
  4741.     divsl.l    #2,d1
  4742.     move.b    d1,d3
  4743.     move.l    d0,d1
  4744.     mulu.l    #3,d1
  4745.     addq.l    #1,d1
  4746.     move.b    d3,0(a0,d1.l)
  4747. ;                        dst[i*3+2] = FLOAT_T
  4748.     lea    -$4B0C(a5),a1
  4749.     fmove.s    0(a1,d0.l*4),fp0
  4750.     fmul.s    #$.437F0000,fp0
  4751.     fmove.l    fp0,d1
  4752.     subq.l    #1,d1
  4753.     divsl.l    #2,d1
  4754.     move.b    d1,d3
  4755.     move.l    d0,d1
  4756.     mulu.l    #3,d1
  4757.     addq.l    #2,d1
  4758.     move.b    d3,0(a0,d1.l)
  4759.     addq.l    #1,d0
  4760. L1426
  4761.     cmp.l    d2,d0
  4762.     blo    L1425
  4763. L1427
  4764. ;                     
  4765.     bra    L1444
  4766. L1428
  4767. ;                     for (i=0;
  4768.     moveq    #0,d0
  4769.     bra    L1430
  4770. L1429
  4771. ;                        dst[i*4+0] = FLOAT_T
  4772.     lea    -$190C(a5),a1
  4773.     fmove.s    0(a1,d0.l*4),fp0
  4774.     fmul.s    #$.437F0000,fp0
  4775.     fmove.l    fp0,d1
  4776.     subq.l    #1,d1
  4777.     divsl.l    #2,d1
  4778.     move.b    d1,d3
  4779.     move.l    d0,d1
  4780.     moveq    #2,d4
  4781.     asl.l    d4,d1
  4782.     move.b    d3,0(a0,d1.l)
  4783. ;                        dst[i*4+1] = FLOAT_T
  4784.     lea    -$320C(a5),a1
  4785.     fmove.s    0(a1,d0.l*4),fp0
  4786.     fmul.s    #$.437F0000,fp0
  4787.     fmove.l    fp0,d1
  4788.     subq.l    #1,d1
  4789.     divsl.l    #2,d1
  4790.     move.b    d1,d3
  4791.     move.l    d0,d1
  4792.     moveq    #2,d4
  4793.     asl.l    d4,d1
  4794.     addq.l    #1,d1
  4795.     move.b    d3,0(a0,d1.l)
  4796. ;                        dst[i*4+2] = FLOAT_T
  4797.     lea    -$4B0C(a5),a1
  4798.     fmove.s    0(a1,d0.l*4),fp0
  4799.     fmul.s    #$.437F0000,fp0
  4800.     fmove.l    fp0,d1
  4801.     subq.l    #1,d1
  4802.     divsl.l    #2,d1
  4803.     move.b    d1,d3
  4804.     move.l    d0,d1
  4805.     moveq    #2,d4
  4806.     asl.l    d4,d1
  4807.     addq.l    #2,d1
  4808.     move.b    d3,0(a0,d1.l)
  4809. ;                        dst[i*4+3] = FLOAT_T
  4810.     lea    -$640C(a5),a1
  4811.     fmove.s    0(a1,d0.l*4),fp0
  4812.     fmul.s    #$.437F0000,fp0
  4813.     fmove.l    fp0,d1
  4814.     subq.l    #1,d1
  4815.     divsl.l    #2,d1
  4816.     move.b    d1,d3
  4817.     move.l    d0,d1
  4818.     moveq    #2,d4
  4819.     asl.l    d4,d1
  4820.     addq.l    #3,d1
  4821.     move.b    d3,0(a0,d1.l)
  4822.     addq.l    #1,d0
  4823. L1430
  4824.     cmp.l    d2,d0
  4825.     blo    L1429
  4826. L1431
  4827. ;                     
  4828.     bra    L1444
  4829. L1432
  4830. ;                     for (i=0;
  4831.     moveq    #0,d0
  4832.     bra    L1434
  4833. L1433
  4834. ;                        dst[i*3+0] = FLOAT_T
  4835.     lea    -$4B0C(a5),a1
  4836.     fmove.s    0(a1,d0.l*4),fp0
  4837.     fmul.s    #$.437F0000,fp0
  4838.     fmove.l    fp0,d1
  4839.     subq.l    #1,d1
  4840.     divsl.l    #2,d1
  4841.     move.b    d1,d3
  4842.     move.l    d0,d1
  4843.     mulu.l    #3,d1
  4844.     move.b    d3,0(a0,d1.l)
  4845. ;                        dst[i*3+1] = FLOAT_T
  4846.     lea    -$320C(a5),a1
  4847.     fmove.s    0(a1,d0.l*4),fp0
  4848.     fmul.s    #$.437F0000,fp0
  4849.     fmove.l    fp0,d1
  4850.     subq.l    #1,d1
  4851.     divsl.l    #2,d1
  4852.     move.b    d1,d3
  4853.     move.l    d0,d1
  4854.     mulu.l    #3,d1
  4855.     addq.l    #1,d1
  4856.     move.b    d3,0(a0,d1.l)
  4857. ;                        dst[i*3+2] = FLOAT_T
  4858.     lea    -$190C(a5),a1
  4859.     fmove.s    0(a1,d0.l*4),fp0
  4860.     fmul.s    #$.437F0000,fp0
  4861.     fmove.l    fp0,d1
  4862.     subq.l    #1,d1
  4863.     divsl.l    #2,d1
  4864.     move.b    d1,d3
  4865.     move.l    d0,d1
  4866.     mulu.l    #3,d1
  4867.     addq.l    #2,d1
  4868.     move.b    d3,0(a0,d1.l)
  4869.     addq.l    #1,d0
  4870. L1434
  4871.     cmp.l    d2,d0
  4872.     blo    L1433
  4873. L1435
  4874. ;                     
  4875.     bra    L1444
  4876. L1436
  4877. ;                     for (i=0;
  4878.     moveq    #0,d0
  4879.     bra    L1438
  4880. L1437
  4881. ;                        dst[i*4+0] = FLOAT_T
  4882.     lea    -$4B0C(a5),a1
  4883.     fmove.s    0(a1,d0.l*4),fp0
  4884.     fmul.s    #$.437F0000,fp0
  4885.     fmove.l    fp0,d1
  4886.     subq.l    #1,d1
  4887.     divsl.l    #2,d1
  4888.     move.b    d1,d3
  4889.     move.l    d0,d1
  4890.     moveq    #2,d4
  4891.     asl.l    d4,d1
  4892.     move.b    d3,0(a0,d1.l)
  4893. ;                        dst[i*4+1] = FLOAT_T
  4894.     lea    -$320C(a5),a1
  4895.     fmove.s    0(a1,d0.l*4),fp0
  4896.     fmul.s    #$.437F0000,fp0
  4897.     fmove.l    fp0,d1
  4898.     subq.l    #1,d1
  4899.     divsl.l    #2,d1
  4900.     move.b    d1,d3
  4901.     move.l    d0,d1
  4902.     moveq    #2,d4
  4903.     asl.l    d4,d1
  4904.     addq.l    #1,d1
  4905.     move.b    d3,0(a0,d1.l)
  4906. ;                        dst[i*4+2] = FLOAT_T
  4907.     lea    -$190C(a5),a1
  4908.     fmove.s    0(a1,d0.l*4),fp0
  4909.     fmul.s    #$.437F0000,fp0
  4910.     fmove.l    fp0,d1
  4911.     subq.l    #1,d1
  4912.     divsl.l    #2,d1
  4913.     move.b    d1,d3
  4914.     move.l    d0,d1
  4915.     moveq    #2,d4
  4916.     asl.l    d4,d1
  4917.     addq.l    #2,d1
  4918.     move.b    d3,0(a0,d1.l)
  4919. ;                        dst[i*4+3] = FLOAT_T
  4920.     lea    -$640C(a5),a1
  4921.     fmove.s    0(a1,d0.l*4),fp0
  4922.     fmul.s    #$.437F0000,fp0
  4923.     fmove.l    fp0,d1
  4924.     subq.l    #1,d1
  4925.     divsl.l    #2,d1
  4926.     move.b    d1,d3
  4927.     move.l    d0,d1
  4928.     moveq    #2,d4
  4929.     asl.l    d4,d1
  4930.     addq.l    #3,d1
  4931.     move.b    d3,0(a0,d1.l)
  4932.     addq.l    #1,d0
  4933. L1438
  4934.     cmp.l    d2,d0
  4935.     blo    L1437
  4936. L1439
  4937. ;                     for (i=0;
  4938.     moveq    #0,d0
  4939.     bra    L1441
  4940. L1440
  4941. ;                        dst[i*4+0] = FLOAT_T
  4942.     lea    -$640C(a5),a1
  4943.     fmove.s    0(a1,d0.l*4),fp0
  4944.     fmul.s    #$.437F0000,fp0
  4945.     fmove.l    fp0,d1
  4946.     subq.l    #1,d1
  4947.     divsl.l    #2,d1
  4948.     move.b    d1,d3
  4949.     move.l    d0,d1
  4950.     moveq    #2,d4
  4951.     asl.l    d4,d1
  4952.     move.b    d3,0(a0,d1.l)
  4953. ;                        dst[i*4+1] = FLOAT_T
  4954.     lea    -$4B0C(a5),a1
  4955.     fmove.s    0(a1,d0.l*4),fp0
  4956.     fmul.s    #$.437F0000,fp0
  4957.     fmove.l    fp0,d1
  4958.     subq.l    #1,d1
  4959.     divsl.l    #2,d1
  4960.     move.b    d1,d3
  4961.     move.l    d0,d1
  4962.     moveq    #2,d4
  4963.     asl.l    d4,d1
  4964.     addq.l    #1,d1
  4965.     move.b    d3,0(a0,d1.l)
  4966. ;                        dst[i*4+2] = FLOAT_T
  4967.     lea    -$320C(a5),a1
  4968.     fmove.s    0(a1,d0.l*4),fp0
  4969.     fmul.s    #$.437F0000,fp0
  4970.     fmove.l    fp0,d1
  4971.     subq.l    #1,d1
  4972.     divsl.l    #2,d1
  4973.     move.b    d1,d3
  4974.     move.l    d0,d1
  4975.     moveq    #2,d4
  4976.     asl.l    d4,d1
  4977.     addq.l    #2,d1
  4978.     move.b    d3,0(a0,d1.l)
  4979. ;                        dst[i*4+3] = FLOAT_T
  4980.     lea    -$190C(a5),a1
  4981.     fmove.s    0(a1,d0.l*4),fp0
  4982.     fmul.s    #$.437F0000,fp0
  4983.     fmove.l    fp0,d1
  4984.     subq.l    #1,d1
  4985.     divsl.l    #2,d1
  4986.     move.b    d1,d3
  4987.     move.l    d0,d1
  4988.     moveq    #2,d4
  4989.     asl.l    d4,d1
  4990.     addq.l    #3,d1
  4991.     move.b    d3,0(a0,d1.l)
  4992.     addq.l    #1,d0
  4993. L1441
  4994.     cmp.l    d2,d0
  4995.     blo    L1440
  4996. L1442
  4997. ;                     
  4998.     bra.b    L1444
  4999. L1443
  5000. ;                     gl_problem(ctx, "bad forma
  5001.     move.l    #L1334,-(a7)
  5002.     move.l    a4,-(a7)
  5003.     jsr    _gl_problem
  5004.     addq.w    #$8,a7
  5005. L1444
  5006. ;        
  5007.     bra    L1770
  5008. L1445
  5009. ;               GLushort *dst = (GLushort *) destinati
  5010. ;               switch (format)
  5011.     cmp.l    #$1909,d3
  5012.     beq    L1458
  5013.     bgt.b    L1785
  5014.     cmp.l    #$1905,d3
  5015.     beq    L1454
  5016.     bgt.b    L1786
  5017.     cmp.l    #$1903,d3
  5018.     beq.b    L1446
  5019.     cmp.l    #$1904,d3
  5020.     beq    L1450
  5021.     bra    L1486
  5022. L1786
  5023.     cmp.l    #$1907,d3
  5024.     beq    L1466
  5025.     cmp.l    #$1908,d3
  5026.     beq    L1470
  5027.     bra    L1486
  5028. L1785
  5029.     cmp.l    #$80E0,d3
  5030.     beq    L1474
  5031.     bgt.b    L1787
  5032.     cmp.l    #$190A,d3
  5033.     beq    L1462
  5034.     cmp.l    #$8000,d3
  5035.     beq    L1482
  5036.     bra    L1486
  5037. L1787
  5038.     cmp.l    #$80E1,d3
  5039.     beq    L1478
  5040.     bra    L1486
  5041. ;                  
  5042. L1446
  5043. ;                     for (i=0;
  5044.     moveq    #0,d0
  5045.     bra.b    L1448
  5046. L1447
  5047. ;                        dst[i] = FLOAT_TO_US
  5048.     lea    -$190C(a5),a0
  5049.     fmove.s    0(a0,d0.l*4),fp0
  5050.     fmul.s    #$.477FFF00,fp0
  5051.     fmove.l    fp0,d1
  5052.     move.w    d1,0(a2,d0.l*2)
  5053.     addq.l    #1,d0
  5054. L1448
  5055.     cmp.l    d2,d0
  5056.     blo.b    L1447
  5057. L1449
  5058. ;                     
  5059.     bra    L1487
  5060. L1450
  5061. ;                     for (i=0;
  5062.     moveq    #0,d0
  5063.     bra.b    L1452
  5064. L1451
  5065. ;                        dst[i] = FLOAT_TO_US
  5066.     lea    -$320C(a5),a0
  5067.     fmove.s    0(a0,d0.l*4),fp0
  5068.     fmul.s    #$.477FFF00,fp0
  5069.     fmove.l    fp0,d1
  5070.     move.w    d1,0(a2,d0.l*2)
  5071.     addq.l    #1,d0
  5072. L1452
  5073.     cmp.l    d2,d0
  5074.     blo.b    L1451
  5075. L1453
  5076. ;                     
  5077.     bra    L1487
  5078. L1454
  5079. ;                     for (i=0;
  5080.     moveq    #0,d0
  5081.     bra.b    L1456
  5082. L1455
  5083. ;                        dst[i] = FLOAT_TO_US
  5084.     lea    -$4B0C(a5),a0
  5085.     fmove.s    0(a0,d0.l*4),fp0
  5086.     fmul.s    #$.477FFF00,fp0
  5087.     fmove.l    fp0,d1
  5088.     move.w    d1,0(a2,d0.l*2)
  5089.     addq.l    #1,d0
  5090. L1456
  5091.     cmp.l    d2,d0
  5092.     blo.b    L1455
  5093. L1457
  5094. ;                     
  5095.     bra    L1487
  5096. L1458
  5097. ;                     for (i=0;
  5098.     moveq    #0,d0
  5099.     bra.b    L1460
  5100. L1459
  5101. ;                        dst[i] = FLOAT_TO_US
  5102.     lea    -$7D0C(a5),a0
  5103.     fmove.s    0(a0,d0.l*4),fp0
  5104.     fmul.s    #$.477FFF00,fp0
  5105.     fmove.l    fp0,d1
  5106.     move.w    d1,0(a2,d0.l*2)
  5107.     addq.l    #1,d0
  5108. L1460
  5109.     cmp.l    d2,d0
  5110.     blo.b    L1459
  5111. L1461
  5112. ;                     
  5113.     bra    L1487
  5114. L1462
  5115. ;                     for (i=0;
  5116.     moveq    #0,d0
  5117.     bra.b    L1464
  5118. L1463
  5119. ;                        dst[i*2+0] = FLOAT_T
  5120.     lea    -$7D0C(a5),a0
  5121.     fmove.s    0(a0,d0.l*4),fp0
  5122.     fmul.s    #$.477FFF00,fp0
  5123.     fmove.l    fp0,d1
  5124.     move.w    d1,d3
  5125.     move.l    d0,d1
  5126.     moveq    #1,d4
  5127.     asl.l    d4,d1
  5128.     move.w    d3,0(a2,d1.l*2)
  5129. ;                        dst[i*2+1] = FLOAT_T
  5130.     lea    -$640C(a5),a0
  5131.     fmove.s    0(a0,d0.l*4),fp0
  5132.     fmul.s    #$.477FFF00,fp0
  5133.     fmove.l    fp0,d1
  5134.     move.w    d1,d3
  5135.     move.l    d0,d1
  5136.     moveq    #1,d4
  5137.     asl.l    d4,d1
  5138.     addq.l    #1,d1
  5139.     move.w    d3,0(a2,d1.l*2)
  5140.     addq.l    #1,d0
  5141. L1464
  5142.     cmp.l    d2,d0
  5143.     blo.b    L1463
  5144. L1465
  5145. ;                     
  5146.     bra    L1487
  5147. L1466
  5148. ;                     for (i=0;
  5149.     moveq    #0,d0
  5150.     bra    L1468
  5151. L1467
  5152. ;                        dst[i*3+0] = FLOAT_T
  5153.     lea    -$190C(a5),a0
  5154.     fmove.s    0(a0,d0.l*4),fp0
  5155.     fmul.s    #$.477FFF00,fp0
  5156.     fmove.l    fp0,d1
  5157.     move.w    d1,d3
  5158.     move.l    d0,d1
  5159.     mulu.l    #3,d1
  5160.     move.w    d3,0(a2,d1.l*2)
  5161. ;                        dst[i*3+1] = FLOAT_T
  5162.     lea    -$320C(a5),a0
  5163.     fmove.s    0(a0,d0.l*4),fp0
  5164.     fmul.s    #$.477FFF00,fp0
  5165.     fmove.l    fp0,d1
  5166.     move.w    d1,d3
  5167.     move.l    d0,d1
  5168.     mulu.l    #3,d1
  5169.     addq.l    #1,d1
  5170.     move.w    d3,0(a2,d1.l*2)
  5171. ;                        dst[i*3+2] = FLOAT_T
  5172.     lea    -$4B0C(a5),a0
  5173.     fmove.s    0(a0,d0.l*4),fp0
  5174.     fmul.s    #$.477FFF00,fp0
  5175.     fmove.l    fp0,d1
  5176.     move.w    d1,d3
  5177.     move.l    d0,d1
  5178.     mulu.l    #3,d1
  5179.     addq.l    #2,d1
  5180.     move.w    d3,0(a2,d1.l*2)
  5181.     addq.l    #1,d0
  5182. L1468
  5183.     cmp.l    d2,d0
  5184.     blo    L1467
  5185. L1469
  5186. ;                     
  5187.     bra    L1487
  5188. L1470
  5189. ;                     for (i=0;
  5190.     moveq    #0,d0
  5191.     bra    L1472
  5192. L1471
  5193. ;                        dst[i*4+0] = FLOAT_T
  5194.     lea    -$190C(a5),a0
  5195.     fmove.s    0(a0,d0.l*4),fp0
  5196.     fmul.s    #$.477FFF00,fp0
  5197.     fmove.l    fp0,d1
  5198.     move.w    d1,d3
  5199.     move.l    d0,d1
  5200.     moveq    #2,d4
  5201.     asl.l    d4,d1
  5202.     move.w    d3,0(a2,d1.l*2)
  5203. ;                        dst[i*4+1] = FLOAT_T
  5204.     lea    -$320C(a5),a0
  5205.     fmove.s    0(a0,d0.l*4),fp0
  5206.     fmul.s    #$.477FFF00,fp0
  5207.     fmove.l    fp0,d1
  5208.     move.w    d1,d3
  5209.     move.l    d0,d1
  5210.     moveq    #2,d4
  5211.     asl.l    d4,d1
  5212.     addq.l    #1,d1
  5213.     move.w    d3,0(a2,d1.l*2)
  5214. ;                        dst[i*4+2] = FLOAT_T
  5215.     lea    -$4B0C(a5),a0
  5216.     fmove.s    0(a0,d0.l*4),fp0
  5217.     fmul.s    #$.477FFF00,fp0
  5218.     fmove.l    fp0,d1
  5219.     move.w    d1,d3
  5220.     move.l    d0,d1
  5221.     moveq    #2,d4
  5222.     asl.l    d4,d1
  5223.     addq.l    #2,d1
  5224.     move.w    d3,0(a2,d1.l*2)
  5225. ;                        dst[i*4+3] = FLOAT_T
  5226.     lea    -$640C(a5),a0
  5227.     fmove.s    0(a0,d0.l*4),fp0
  5228.     fmul.s    #$.477FFF00,fp0
  5229.     fmove.l    fp0,d1
  5230.     move.w    d1,d3
  5231.     move.l    d0,d1
  5232.     moveq    #2,d4
  5233.     asl.l    d4,d1
  5234.     addq.l    #3,d1
  5235.     move.w    d3,0(a2,d1.l*2)
  5236.     addq.l    #1,d0
  5237. L1472
  5238.     cmp.l    d2,d0
  5239.     blo    L1471
  5240. L1473
  5241. ;                     
  5242.     bra    L1487
  5243. L1474
  5244. ;                     for (i=0;
  5245.     moveq    #0,d0
  5246.     bra    L1476
  5247. L1475
  5248. ;                        dst[i*3+0] = FLOAT_T
  5249.     lea    -$4B0C(a5),a0
  5250.     fmove.s    0(a0,d0.l*4),fp0
  5251.     fmul.s    #$.477FFF00,fp0
  5252.     fmove.l    fp0,d1
  5253.     move.w    d1,d3
  5254.     move.l    d0,d1
  5255.     mulu.l    #3,d1
  5256.     move.w    d3,0(a2,d1.l*2)
  5257. ;                        dst[i*3+1] = FLOAT_T
  5258.     lea    -$320C(a5),a0
  5259.     fmove.s    0(a0,d0.l*4),fp0
  5260.     fmul.s    #$.477FFF00,fp0
  5261.     fmove.l    fp0,d1
  5262.     move.w    d1,d3
  5263.     move.l    d0,d1
  5264.     mulu.l    #3,d1
  5265.     addq.l    #1,d1
  5266.     move.w    d3,0(a2,d1.l*2)
  5267. ;                        dst[i*3+2] = FLOAT_T
  5268.     lea    -$190C(a5),a0
  5269.     fmove.s    0(a0,d0.l*4),fp0
  5270.     fmul.s    #$.477FFF00,fp0
  5271.     fmove.l    fp0,d1
  5272.     move.w    d1,d3
  5273.     move.l    d0,d1
  5274.     mulu.l    #3,d1
  5275.     addq.l    #2,d1
  5276.     move.w    d3,0(a2,d1.l*2)
  5277.     addq.l    #1,d0
  5278. L1476
  5279.     cmp.l    d2,d0
  5280.     blo    L1475
  5281. L1477
  5282. ;                     
  5283.     bra    L1487
  5284. L1478
  5285. ;                     for (i=0;
  5286.     moveq    #0,d0
  5287.     bra    L1480
  5288. L1479
  5289. ;                        dst[i*4+0] = FLOAT_T
  5290.     lea    -$4B0C(a5),a0
  5291.     fmove.s    0(a0,d0.l*4),fp0
  5292.     fmul.s    #$.477FFF00,fp0
  5293.     fmove.l    fp0,d1
  5294.     move.w    d1,d3
  5295.     move.l    d0,d1
  5296.     moveq    #2,d4
  5297.     asl.l    d4,d1
  5298.     move.w    d3,0(a2,d1.l*2)
  5299. ;                        dst[i*4+1] = FLOAT_T
  5300.     lea    -$320C(a5),a0
  5301.     fmove.s    0(a0,d0.l*4),fp0
  5302.     fmul.s    #$.477FFF00,fp0
  5303.     fmove.l    fp0,d1
  5304.     move.w    d1,d3
  5305.     move.l    d0,d1
  5306.     moveq    #2,d4
  5307.     asl.l    d4,d1
  5308.     addq.l    #1,d1
  5309.     move.w    d3,0(a2,d1.l*2)
  5310. ;                        dst[i*4+2] = FLOAT_T
  5311.     lea    -$190C(a5),a0
  5312.     fmove.s    0(a0,d0.l*4),fp0
  5313.     fmul.s    #$.477FFF00,fp0
  5314.     fmove.l    fp0,d1
  5315.     move.w    d1,d3
  5316.     move.l    d0,d1
  5317.     moveq    #2,d4
  5318.     asl.l    d4,d1
  5319.     addq.l    #2,d1
  5320.     move.w    d3,0(a2,d1.l*2)
  5321. ;                        dst[i*4+3] = FLOAT_T
  5322.     lea    -$640C(a5),a0
  5323.     fmove.s    0(a0,d0.l*4),fp0
  5324.     fmul.s    #$.477FFF00,fp0
  5325.     fmove.l    fp0,d1
  5326.     move.w    d1,d3
  5327.     move.l    d0,d1
  5328.     moveq    #2,d4
  5329.     asl.l    d4,d1
  5330.     addq.l    #3,d1
  5331.     move.w    d3,0(a2,d1.l*2)
  5332.     addq.l    #1,d0
  5333. L1480
  5334.     cmp.l    d2,d0
  5335.     blo    L1479
  5336. L1481
  5337. ;                     
  5338.     bra    L1487
  5339. L1482
  5340. ;                     for (i=0;
  5341.     moveq    #0,d0
  5342.     bra    L1484
  5343. L1483
  5344. ;                        dst[i*4+0] = FLOAT_T
  5345.     lea    -$640C(a5),a0
  5346.     fmove.s    0(a0,d0.l*4),fp0
  5347.     fmul.s    #$.477FFF00,fp0
  5348.     fmove.l    fp0,d1
  5349.     move.w    d1,d3
  5350.     move.l    d0,d1
  5351.     moveq    #2,d4
  5352.     asl.l    d4,d1
  5353.     move.w    d3,0(a2,d1.l*2)
  5354. ;                        dst[i*4+1] = FLOAT_T
  5355.     lea    -$4B0C(a5),a0
  5356.     fmove.s    0(a0,d0.l*4),fp0
  5357.     fmul.s    #$.477FFF00,fp0
  5358.     fmove.l    fp0,d1
  5359.     move.w    d1,d3
  5360.     move.l    d0,d1
  5361.     moveq    #2,d4
  5362.     asl.l    d4,d1
  5363.     addq.l    #1,d1
  5364.     move.w    d3,0(a2,d1.l*2)
  5365. ;                        dst[i*4+2] = FLOAT_T
  5366.     lea    -$320C(a5),a0
  5367.     fmove.s    0(a0,d0.l*4),fp0
  5368.     fmul.s    #$.477FFF00,fp0
  5369.     fmove.l    fp0,d1
  5370.     move.w    d1,d3
  5371.     move.l    d0,d1
  5372.     moveq    #2,d4
  5373.     asl.l    d4,d1
  5374.     addq.l    #2,d1
  5375.     move.w    d3,0(a2,d1.l*2)
  5376. ;                        dst[i*4+3] = FLOAT_T
  5377.     lea    -$190C(a5),a0
  5378.     fmove.s    0(a0,d0.l*4),fp0
  5379.     fmul.s    #$.477FFF00,fp0
  5380.     fmove.l    fp0,d1
  5381.     move.w    d1,d3
  5382.     move.l    d0,d1
  5383.     moveq    #2,d4
  5384.     asl.l    d4,d1
  5385.     addq.l    #3,d1
  5386.     move.w    d3,0(a2,d1.l*2)
  5387.     addq.l    #1,d0
  5388. L1484
  5389.     cmp.l    d2,d0
  5390.     blo    L1483
  5391. L1485
  5392. ;                     
  5393.     bra.b    L1487
  5394. L1486
  5395. ;                     gl_problem(ctx, "bad forma
  5396.     move.l    #L1334,-(a7)
  5397.     move.l    a4,-(a7)
  5398.     jsr    _gl_problem
  5399.     addq.w    #$8,a7
  5400. L1487
  5401. ;               if (ctx->Pack.SwapBytes) 
  5402.     move.l    a4,a0
  5403.     add.l    #$E644,a0
  5404.     tst.b    $18(a0)
  5405.     beq.b    L1489
  5406. L1488
  5407. ;                  gl_swap2( (GLushort *) dst, n*n )
  5408.     move.l    d2,d0
  5409.     mulu.l    d2,d0
  5410.     move.l    d0,-(a7)
  5411.     move.l    a2,-(a7)
  5412.     jsr    _gl_swap2
  5413.     addq.w    #$8,a7
  5414. L1489
  5415. ;        
  5416.     bra    L1770
  5417. L1490
  5418. ;               GLshort *dst = (GLshort *) destination;
  5419. ;               switch (format)
  5420.     cmp.l    #$1909,d3
  5421.     beq    L1503
  5422.     bgt.b    L1788
  5423.     cmp.l    #$1905,d3
  5424.     beq    L1499
  5425.     bgt.b    L1789
  5426.     cmp.l    #$1903,d3
  5427.     beq.b    L1491
  5428.     cmp.l    #$1904,d3
  5429.     beq    L1495
  5430.     bra    L1530
  5431. L1789
  5432.     cmp.l    #$1907,d3
  5433.     beq    L1511
  5434.     cmp.l    #$1908,d3
  5435.     beq    L1515
  5436.     bra    L1530
  5437. L1788
  5438.     cmp.l    #$80E0,d3
  5439.     beq    L1519
  5440.     bgt.b    L1790
  5441.     cmp.l    #$190A,d3
  5442.     beq    L1507
  5443.     cmp.l    #$8000,d3
  5444.     beq    L1526
  5445.     bra    L1530
  5446. L1790
  5447.     cmp.l    #$80E1,d3
  5448.     beq    L1523
  5449.     bra    L1530
  5450. ;                  
  5451. L1491
  5452. ;                     for (i=0;
  5453.     moveq    #0,d0
  5454.     bra.b    L1493
  5455. L1492
  5456. ;                        dst[i] = FLOAT_TO_SH
  5457.     lea    -$190C(a5),a0
  5458.     fmove.s    0(a0,d0.l*4),fp0
  5459.     fmul.s    #$.477FFF00,fp0
  5460.     fmove.l    fp0,d1
  5461.     subq.l    #1,d1
  5462.     divsl.l    #2,d1
  5463.     move.w    d1,0(a2,d0.l*2)
  5464.     addq.l    #1,d0
  5465. L1493
  5466.     cmp.l    d2,d0
  5467.     blo.b    L1492
  5468. L1494
  5469. ;                     
  5470.     bra    L1531
  5471. L1495
  5472. ;                     for (i=0;
  5473.     moveq    #0,d0
  5474.     bra.b    L1497
  5475. L1496
  5476. ;                        dst[i] = FLOAT_TO_SH
  5477.     lea    -$320C(a5),a0
  5478.     fmove.s    0(a0,d0.l*4),fp0
  5479.     fmul.s    #$.477FFF00,fp0
  5480.     fmove.l    fp0,d1
  5481.     subq.l    #1,d1
  5482.     divsl.l    #2,d1
  5483.     move.w    d1,0(a2,d0.l*2)
  5484.     addq.l    #1,d0
  5485. L1497
  5486.     cmp.l    d2,d0
  5487.     blo.b    L1496
  5488. L1498
  5489. ;                     
  5490.     bra    L1531
  5491. L1499
  5492. ;                     for (i=0;
  5493.     moveq    #0,d0
  5494.     bra.b    L1501
  5495. L1500
  5496. ;                        dst[i] = FLOAT_TO_SH
  5497.     lea    -$4B0C(a5),a0
  5498.     fmove.s    0(a0,d0.l*4),fp0
  5499.     fmul.s    #$.477FFF00,fp0
  5500.     fmove.l    fp0,d1
  5501.     subq.l    #1,d1
  5502.     divsl.l    #2,d1
  5503.     move.w    d1,0(a2,d0.l*2)
  5504.     addq.l    #1,d0
  5505. L1501
  5506.     cmp.l    d2,d0
  5507.     blo.b    L1500
  5508. L1502
  5509. ;                     
  5510.     bra    L1531
  5511. L1503
  5512. ;                     for (i=0;
  5513.     moveq    #0,d0
  5514.     bra.b    L1505
  5515. L1504
  5516. ;                        dst[i] = FLOAT_TO_SH
  5517.     lea    -$7D0C(a5),a0
  5518.     fmove.s    0(a0,d0.l*4),fp0
  5519.     fmul.s    #$.477FFF00,fp0
  5520.     fmove.l    fp0,d1
  5521.     subq.l    #1,d1
  5522.     divsl.l    #2,d1
  5523.     move.w    d1,0(a2,d0.l*2)
  5524.     addq.l    #1,d0
  5525. L1505
  5526.     cmp.l    d2,d0
  5527.     blo.b    L1504
  5528. L1506
  5529. ;                     
  5530.     bra    L1531
  5531. L1507
  5532. ;                     for (i=0;
  5533.     moveq    #0,d0
  5534.     bra.b    L1509
  5535. L1508
  5536. ;                        dst[i*2+0] = FLOAT_T
  5537.     lea    -$7D0C(a5),a0
  5538.     fmove.s    0(a0,d0.l*4),fp0
  5539.     fmul.s    #$.477FFF00,fp0
  5540.     fmove.l    fp0,d1
  5541.     subq.l    #1,d1
  5542.     divsl.l    #2,d1
  5543.     move.w    d1,d3
  5544.     move.l    d0,d1
  5545.     moveq    #1,d4
  5546.     asl.l    d4,d1
  5547.     move.w    d3,0(a2,d1.l*2)
  5548. ;                        dst[i*2+1] = FLOAT_T
  5549.     lea    -$640C(a5),a0
  5550.     fmove.s    0(a0,d0.l*4),fp0
  5551.     fmul.s    #$.477FFF00,fp0
  5552.     fmove.l    fp0,d1
  5553.     subq.l    #1,d1
  5554.     divsl.l    #2,d1
  5555.     move.w    d1,d3
  5556.     move.l    d0,d1
  5557.     moveq    #1,d4
  5558.     asl.l    d4,d1
  5559.     addq.l    #1,d1
  5560.     move.w    d3,0(a2,d1.l*2)
  5561.     addq.l    #1,d0
  5562. L1509
  5563.     cmp.l    d2,d0
  5564.     blo.b    L1508
  5565. L1510
  5566. ;                     
  5567.     bra    L1531
  5568. L1511
  5569. ;                     for (i=0;
  5570.     moveq    #0,d0
  5571.     bra    L1513
  5572. L1512
  5573. ;                        dst[i*3+0] = FLOAT_T
  5574.     lea    -$190C(a5),a0
  5575.     fmove.s    0(a0,d0.l*4),fp0
  5576.     fmul.s    #$.477FFF00,fp0
  5577.     fmove.l    fp0,d1
  5578.     subq.l    #1,d1
  5579.     divsl.l    #2,d1
  5580.     move.w    d1,d3
  5581.     move.l    d0,d1
  5582.     mulu.l    #3,d1
  5583.     move.w    d3,0(a2,d1.l*2)
  5584. ;                        dst[i*3+1] = FLOAT_T
  5585.     lea    -$320C(a5),a0
  5586.     fmove.s    0(a0,d0.l*4),fp0
  5587.     fmul.s    #$.477FFF00,fp0
  5588.     fmove.l    fp0,d1
  5589.     subq.l    #1,d1
  5590.     divsl.l    #2,d1
  5591.     move.w    d1,d3
  5592.     move.l    d0,d1
  5593.     mulu.l    #3,d1
  5594.     addq.l    #1,d1
  5595.     move.w    d3,0(a2,d1.l*2)
  5596. ;                        dst[i*3+2] = FLOAT_T
  5597.     lea    -$4B0C(a5),a0
  5598.     fmove.s    0(a0,d0.l*4),fp0
  5599.     fmul.s    #$.477FFF00,fp0
  5600.     fmove.l    fp0,d1
  5601.     subq.l    #1,d1
  5602.     divsl.l    #2,d1
  5603.     move.w    d1,d3
  5604.     move.l    d0,d1
  5605.     mulu.l    #3,d1
  5606.     addq.l    #2,d1
  5607.     move.w    d3,0(a2,d1.l*2)
  5608.     addq.l    #1,d0
  5609. L1513
  5610.     cmp.l    d2,d0
  5611.     blo    L1512
  5612. L1514
  5613. ;                     
  5614.     bra    L1531
  5615. L1515
  5616. ;                     for (i=0;
  5617.     moveq    #0,d0
  5618.     bra    L1517
  5619. L1516
  5620. ;                        dst[i*4+0] = FLOAT_T
  5621.     lea    -$190C(a5),a0
  5622.     fmove.s    0(a0,d0.l*4),fp0
  5623.     fmul.s    #$.477FFF00,fp0
  5624.     fmove.l    fp0,d1
  5625.     subq.l    #1,d1
  5626.     divsl.l    #2,d1
  5627.     move.w    d1,d3
  5628.     move.l    d0,d1
  5629.     moveq    #2,d4
  5630.     asl.l    d4,d1
  5631.     move.w    d3,0(a2,d1.l*2)
  5632. ;                        dst[i*4+1] = FLOAT_T
  5633.     lea    -$320C(a5),a0
  5634.     fmove.s    0(a0,d0.l*4),fp0
  5635.     fmul.s    #$.477FFF00,fp0
  5636.     fmove.l    fp0,d1
  5637.     subq.l    #1,d1
  5638.     divsl.l    #2,d1
  5639.     move.w    d1,d3
  5640.     move.l    d0,d1
  5641.     moveq    #2,d4
  5642.     asl.l    d4,d1
  5643.     addq.l    #1,d1
  5644.     move.w    d3,0(a2,d1.l*2)
  5645. ;                        dst[i*4+2] = FLOAT_T
  5646.     lea    -$4B0C(a5),a0
  5647.     fmove.s    0(a0,d0.l*4),fp0
  5648.     fmul.s    #$.477FFF00,fp0
  5649.     fmove.l    fp0,d1
  5650.     subq.l    #1,d1
  5651.     divsl.l    #2,d1
  5652.     move.w    d1,d3
  5653.     move.l    d0,d1
  5654.     moveq    #2,d4
  5655.     asl.l    d4,d1
  5656.     addq.l    #2,d1
  5657.     move.w    d3,0(a2,d1.l*2)
  5658. ;                        dst[i*4+3] = FLOAT_T
  5659.     lea    -$640C(a5),a0
  5660.     fmove.s    0(a0,d0.l*4),fp0
  5661.     fmul.s    #$.477FFF00,fp0
  5662.     fmove.l    fp0,d1
  5663.     subq.l    #1,d1
  5664.     divsl.l    #2,d1
  5665.     move.w    d1,d3
  5666.     move.l    d0,d1
  5667.     moveq    #2,d4
  5668.     asl.l    d4,d1
  5669.     addq.l    #3,d1
  5670.     move.w    d3,0(a2,d1.l*2)
  5671.     addq.l    #1,d0
  5672. L1517
  5673.     cmp.l    d2,d0
  5674.     blo    L1516
  5675. L1518
  5676. ;                     
  5677.     bra    L1531
  5678. L1519
  5679. ;                     for (i=0;
  5680.     moveq    #0,d0
  5681.     bra    L1521
  5682. L1520
  5683. ;                        dst[i*3+0] = FLOAT_T
  5684.     lea    -$4B0C(a5),a0
  5685.     fmove.s    0(a0,d0.l*4),fp0
  5686.     fmul.s    #$.477FFF00,fp0
  5687.     fmove.l    fp0,d1
  5688.     subq.l    #1,d1
  5689.     divsl.l    #2,d1
  5690.     move.w    d1,d3
  5691.     move.l    d0,d1
  5692.     mulu.l    #3,d1
  5693.     move.w    d3,0(a2,d1.l*2)
  5694. ;                        dst[i*3+1] = FLOAT_T
  5695.     lea    -$320C(a5),a0
  5696.     fmove.s    0(a0,d0.l*4),fp0
  5697.     fmul.s    #$.477FFF00,fp0
  5698.     fmove.l    fp0,d1
  5699.     subq.l    #1,d1
  5700.     divsl.l    #2,d1
  5701.     move.w    d1,d3
  5702.     move.l    d0,d1
  5703.     mulu.l    #3,d1
  5704.     addq.l    #1,d1
  5705.     move.w    d3,0(a2,d1.l*2)
  5706. ;                        dst[i*3+2] = FLOAT_T
  5707.     lea    -$190C(a5),a0
  5708.     fmove.s    0(a0,d0.l*4),fp0
  5709.     fmul.s    #$.477FFF00,fp0
  5710.     fmove.l    fp0,d1
  5711.     subq.l    #1,d1
  5712.     divsl.l    #2,d1
  5713.     move.w    d1,d3
  5714.     move.l    d0,d1
  5715.     mulu.l    #3,d1
  5716.     addq.l    #2,d1
  5717.     move.w    d3,0(a2,d1.l*2)
  5718.     addq.l    #1,d0
  5719. L1521
  5720.     cmp.l    d2,d0
  5721.     blo    L1520
  5722. L1522
  5723. ;                     
  5724.     bra    L1531
  5725. L1523
  5726. ;                     for (i=0;
  5727.     moveq    #0,d0
  5728.     bra    L1525
  5729. L1524
  5730. ;                        dst[i*4+0] = FLOAT_T
  5731.     lea    -$4B0C(a5),a0
  5732.     fmove.s    0(a0,d0.l*4),fp0
  5733.     fmul.s    #$.477FFF00,fp0
  5734.     fmove.l    fp0,d1
  5735.     subq.l    #1,d1
  5736.     divsl.l    #2,d1
  5737.     move.w    d1,d3
  5738.     move.l    d0,d1
  5739.     moveq    #2,d4
  5740.     asl.l    d4,d1
  5741.     move.w    d3,0(a2,d1.l*2)
  5742. ;                        dst[i*4+1] = FLOAT_T
  5743.     lea    -$320C(a5),a0
  5744.     fmove.s    0(a0,d0.l*4),fp0
  5745.     fmul.s    #$.477FFF00,fp0
  5746.     fmove.l    fp0,d1
  5747.     subq.l    #1,d1
  5748.     divsl.l    #2,d1
  5749.     move.w    d1,d3
  5750.     move.l    d0,d1
  5751.     moveq    #2,d4
  5752.     asl.l    d4,d1
  5753.     addq.l    #1,d1
  5754.     move.w    d3,0(a2,d1.l*2)
  5755. ;                        dst[i*4+2] = FLOAT_T
  5756.     lea    -$190C(a5),a0
  5757.     fmove.s    0(a0,d0.l*4),fp0
  5758.     fmul.s    #$.477FFF00,fp0
  5759.     fmove.l    fp0,d1
  5760.     subq.l    #1,d1
  5761.     divsl.l    #2,d1
  5762.     move.w    d1,d3
  5763.     move.l    d0,d1
  5764.     moveq    #2,d4
  5765.     asl.l    d4,d1
  5766.     addq.l    #2,d1
  5767.     move.w    d3,0(a2,d1.l*2)
  5768. ;                        dst[i*4+3] = FLOAT_T
  5769.     lea    -$640C(a5),a0
  5770.     fmove.s    0(a0,d0.l*4),fp0
  5771.     fmul.s    #$.477FFF00,fp0
  5772.     fmove.l    fp0,d1
  5773.     subq.l    #1,d1
  5774.     divsl.l    #2,d1
  5775.     move.w    d1,d3
  5776.     move.l    d0,d1
  5777.     moveq    #2,d4
  5778.     asl.l    d4,d1
  5779.     addq.l    #3,d1
  5780.     move.w    d3,0(a2,d1.l*2)
  5781.     addq.l    #1,d0
  5782. L1525
  5783.     cmp.l    d2,d0
  5784.     blo    L1524
  5785. L1526
  5786. ;                     for (i=0;
  5787.     moveq    #0,d0
  5788.     bra    L1528
  5789. L1527
  5790. ;                        dst[i*4+0] = FLOAT_T
  5791.     lea    -$640C(a5),a0
  5792.     fmove.s    0(a0,d0.l*4),fp0
  5793.     fmul.s    #$.477FFF00,fp0
  5794.     fmove.l    fp0,d1
  5795.     subq.l    #1,d1
  5796.     divsl.l    #2,d1
  5797.     move.w    d1,d3
  5798.     move.l    d0,d1
  5799.     moveq    #2,d4
  5800.     asl.l    d4,d1
  5801.     move.w    d3,0(a2,d1.l*2)
  5802. ;                        dst[i*4+1] = FLOAT_T
  5803.     lea    -$4B0C(a5),a0
  5804.     fmove.s    0(a0,d0.l*4),fp0
  5805.     fmul.s    #$.477FFF00,fp0
  5806.     fmove.l    fp0,d1
  5807.     subq.l    #1,d1
  5808.     divsl.l    #2,d1
  5809.     move.w    d1,d3
  5810.     move.l    d0,d1
  5811.     moveq    #2,d4
  5812.     asl.l    d4,d1
  5813.     addq.l    #1,d1
  5814.     move.w    d3,0(a2,d1.l*2)
  5815. ;                        dst[i*4+2] = FLOAT_T
  5816.     lea    -$320C(a5),a0
  5817.     fmove.s    0(a0,d0.l*4),fp0
  5818.     fmul.s    #$.477FFF00,fp0
  5819.     fmove.l    fp0,d1
  5820.     subq.l    #1,d1
  5821.     divsl.l    #2,d1
  5822.     move.w    d1,d3
  5823.     move.l    d0,d1
  5824.     moveq    #2,d4
  5825.     asl.l    d4,d1
  5826.     addq.l    #2,d1
  5827.     move.w    d3,0(a2,d1.l*2)
  5828. ;                        dst[i*4+3] = FLOAT_T
  5829.     lea    -$190C(a5),a0
  5830.     fmove.s    0(a0,d0.l*4),fp0
  5831.     fmul.s    #$.477FFF00,fp0
  5832.     fmove.l    fp0,d1
  5833.     subq.l    #1,d1
  5834.     divsl.l    #2,d1
  5835.     move.w    d1,d3
  5836.     move.l    d0,d1
  5837.     moveq    #2,d4
  5838.     asl.l    d4,d1
  5839.     addq.l    #3,d1
  5840.     move.w    d3,0(a2,d1.l*2)
  5841.     addq.l    #1,d0
  5842. L1528
  5843.     cmp.l    d2,d0
  5844.     blo    L1527
  5845. L1529
  5846. ;                     
  5847.     bra.b    L1531
  5848. L1530
  5849. ;                     gl_problem(ctx, "bad forma
  5850.     move.l    #L1334,-(a7)
  5851.     move.l    a4,-(a7)
  5852.     jsr    _gl_problem
  5853.     addq.w    #$8,a7
  5854. L1531
  5855. ;               if (ctx->Pack.SwapBytes) 
  5856.     move.l    a4,a0
  5857.     add.l    #$E644,a0
  5858.     tst.b    $18(a0)
  5859.     beq.b    L1533
  5860. L1532
  5861. ;                  gl_swap2( (GLushort *) dst, n*n )
  5862.     move.l    d2,d0
  5863.     mulu.l    d2,d0
  5864.     move.l    d0,-(a7)
  5865.     move.l    a2,-(a7)
  5866.     jsr    _gl_swap2
  5867.     addq.w    #$8,a7
  5868. L1533
  5869. ;        
  5870.     bra    L1770
  5871. L1534
  5872. ;               GLuint *dst = (GLuint *) destination;
  5873. ;               switch (format)
  5874.     cmp.l    #$1909,d3
  5875.     beq    L1547
  5876.     bgt.b    L1791
  5877.     cmp.l    #$1905,d3
  5878.     beq    L1543
  5879.     bgt.b    L1792
  5880.     cmp.l    #$1903,d3
  5881.     beq.b    L1535
  5882.     cmp.l    #$1904,d3
  5883.     beq    L1539
  5884.     bra    L1575
  5885. L1792
  5886.     cmp.l    #$1907,d3
  5887.     beq    L1555
  5888.     cmp.l    #$1908,d3
  5889.     beq    L1559
  5890.     bra    L1575
  5891. L1791
  5892.     cmp.l    #$80E0,d3
  5893.     beq    L1563
  5894.     bgt.b    L1793
  5895.     cmp.l    #$190A,d3
  5896.     beq    L1551
  5897.     cmp.l    #$8000,d3
  5898.     beq    L1571
  5899.     bra    L1575
  5900. L1793
  5901.     cmp.l    #$80E1,d3
  5902.     beq    L1567
  5903.     bra    L1575
  5904. ;                  
  5905. L1535
  5906. ;                     for (i=0;
  5907.     moveq    #0,d0
  5908.     bra.b    L1537
  5909. L1536
  5910. ;                        dst[i] = FLOAT_TO_UI
  5911.     lea    -$190C(a5),a0
  5912.     fmove.s    0(a0,d0.l*4),fp0
  5913.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  5914.     fmove.l    fp0,d1
  5915.     move.l    d1,0(a2,d0.l*4)
  5916.     addq.l    #1,d0
  5917. L1537
  5918.     cmp.l    d2,d0
  5919.     blo.b    L1536
  5920. L1538
  5921. ;                     
  5922.     bra    L1576
  5923. L1539
  5924. ;                     for (i=0;
  5925.     moveq    #0,d0
  5926.     bra.b    L1541
  5927. L1540
  5928. ;                        dst[i] = FLOAT_TO_UI
  5929.     lea    -$320C(a5),a0
  5930.     fmove.s    0(a0,d0.l*4),fp0
  5931.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  5932.     fmove.l    fp0,d1
  5933.     move.l    d1,0(a2,d0.l*4)
  5934.     addq.l    #1,d0
  5935. L1541
  5936.     cmp.l    d2,d0
  5937.     blo.b    L1540
  5938. L1542
  5939. ;                     
  5940.     bra    L1576
  5941. L1543
  5942. ;                     for (i=0;
  5943.     moveq    #0,d0
  5944.     bra.b    L1545
  5945. L1544
  5946. ;                        dst[i] = FLOAT_TO_UI
  5947.     lea    -$4B0C(a5),a0
  5948.     fmove.s    0(a0,d0.l*4),fp0
  5949.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  5950.     fmove.l    fp0,d1
  5951.     move.l    d1,0(a2,d0.l*4)
  5952.     addq.l    #1,d0
  5953. L1545
  5954.     cmp.l    d2,d0
  5955.     blo.b    L1544
  5956. L1546
  5957. ;                     
  5958.     bra    L1576
  5959. L1547
  5960. ;                     for (i=0;
  5961.     moveq    #0,d0
  5962.     bra.b    L1549
  5963. L1548
  5964. ;                        dst[i] = FLOAT_TO_UI
  5965.     lea    -$7D0C(a5),a0
  5966.     fmove.s    0(a0,d0.l*4),fp0
  5967.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  5968.     fmove.l    fp0,d1
  5969.     move.l    d1,0(a2,d0.l*4)
  5970.     addq.l    #1,d0
  5971. L1549
  5972.     cmp.l    d2,d0
  5973.     blo.b    L1548
  5974. L1550
  5975. ;                     
  5976.     bra    L1576
  5977. L1551
  5978. ;                     for (i=0;
  5979.     moveq    #0,d0
  5980.     bra.b    L1553
  5981. L1552
  5982. ;                        dst[i*2+0] = FLOAT_T
  5983.     lea    -$7D0C(a5),a0
  5984.     fmove.s    0(a0,d0.l*4),fp0
  5985.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  5986.     fmove.l    fp0,d3
  5987.     move.l    d0,d1
  5988.     moveq    #1,d4
  5989.     asl.l    d4,d1
  5990.     move.l    d3,0(a2,d1.l*4)
  5991. ;                        dst[i*2+1] = FLOAT_T
  5992.     lea    -$640C(a5),a0
  5993.     fmove.s    0(a0,d0.l*4),fp0
  5994.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  5995.     fmove.l    fp0,d3
  5996.     move.l    d0,d1
  5997.     moveq    #1,d4
  5998.     asl.l    d4,d1
  5999.     addq.l    #1,d1
  6000.     move.l    d3,0(a2,d1.l*4)
  6001.     addq.l    #1,d0
  6002. L1553
  6003.     cmp.l    d2,d0
  6004.     blo.b    L1552
  6005. L1554
  6006. ;                     
  6007.     bra    L1576
  6008. L1555
  6009. ;                     for (i=0;
  6010.     moveq    #0,d0
  6011.     bra    L1557
  6012. L1556
  6013. ;                        dst[i*3+0] = FLOAT_T
  6014.     lea    -$190C(a5),a0
  6015.     fmove.s    0(a0,d0.l*4),fp0
  6016.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6017.     fmove.l    fp0,d3
  6018.     move.l    d0,d1
  6019.     mulu.l    #3,d1
  6020.     move.l    d3,0(a2,d1.l*4)
  6021. ;                        dst[i*3+1] = FLOAT_T
  6022.     lea    -$320C(a5),a0
  6023.     fmove.s    0(a0,d0.l*4),fp0
  6024.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6025.     fmove.l    fp0,d3
  6026.     move.l    d0,d1
  6027.     mulu.l    #3,d1
  6028.     addq.l    #1,d1
  6029.     move.l    d3,0(a2,d1.l*4)
  6030. ;                        dst[i*3+2] = FLOAT_T
  6031.     lea    -$4B0C(a5),a0
  6032.     fmove.s    0(a0,d0.l*4),fp0
  6033.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6034.     fmove.l    fp0,d3
  6035.     move.l    d0,d1
  6036.     mulu.l    #3,d1
  6037.     addq.l    #2,d1
  6038.     move.l    d3,0(a2,d1.l*4)
  6039.     addq.l    #1,d0
  6040. L1557
  6041.     cmp.l    d2,d0
  6042.     blo    L1556
  6043. L1558
  6044. ;                     
  6045.     bra    L1576
  6046. L1559
  6047. ;                     for (i=0;
  6048.     moveq    #0,d0
  6049.     bra    L1561
  6050. L1560
  6051. ;                        dst[i*4+0] = FLOAT_T
  6052.     lea    -$190C(a5),a0
  6053.     fmove.s    0(a0,d0.l*4),fp0
  6054.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6055.     fmove.l    fp0,d3
  6056.     move.l    d0,d1
  6057.     moveq    #2,d4
  6058.     asl.l    d4,d1
  6059.     move.l    d3,0(a2,d1.l*4)
  6060. ;                        dst[i*4+1] = FLOAT_T
  6061.     lea    -$320C(a5),a0
  6062.     fmove.s    0(a0,d0.l*4),fp0
  6063.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6064.     fmove.l    fp0,d3
  6065.     move.l    d0,d1
  6066.     moveq    #2,d4
  6067.     asl.l    d4,d1
  6068.     addq.l    #1,d1
  6069.     move.l    d3,0(a2,d1.l*4)
  6070. ;                        dst[i*4+2] = FLOAT_T
  6071.     lea    -$4B0C(a5),a0
  6072.     fmove.s    0(a0,d0.l*4),fp0
  6073.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6074.     fmove.l    fp0,d3
  6075.     move.l    d0,d1
  6076.     moveq    #2,d4
  6077.     asl.l    d4,d1
  6078.     addq.l    #2,d1
  6079.     move.l    d3,0(a2,d1.l*4)
  6080. ;                        dst[i*4+3] = FLOAT_T
  6081.     lea    -$640C(a5),a0
  6082.     fmove.s    0(a0,d0.l*4),fp0
  6083.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6084.     fmove.l    fp0,d3
  6085.     move.l    d0,d1
  6086.     moveq    #2,d4
  6087.     asl.l    d4,d1
  6088.     addq.l    #3,d1
  6089.     move.l    d3,0(a2,d1.l*4)
  6090.     addq.l    #1,d0
  6091. L1561
  6092.     cmp.l    d2,d0
  6093.     blo    L1560
  6094. L1562
  6095. ;                     
  6096.     bra    L1576
  6097. L1563
  6098. ;                     for (i=0;
  6099.     moveq    #0,d0
  6100.     bra    L1565
  6101. L1564
  6102. ;                        dst[i*3+0] = FLOAT_T
  6103.     lea    -$4B0C(a5),a0
  6104.     fmove.s    0(a0,d0.l*4),fp0
  6105.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6106.     fmove.l    fp0,d3
  6107.     move.l    d0,d1
  6108.     mulu.l    #3,d1
  6109.     move.l    d3,0(a2,d1.l*4)
  6110. ;                        dst[i*3+1] = FLOAT_T
  6111.     lea    -$320C(a5),a0
  6112.     fmove.s    0(a0,d0.l*4),fp0
  6113.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6114.     fmove.l    fp0,d3
  6115.     move.l    d0,d1
  6116.     mulu.l    #3,d1
  6117.     addq.l    #1,d1
  6118.     move.l    d3,0(a2,d1.l*4)
  6119. ;                        dst[i*3+2] = FLOAT_T
  6120.     lea    -$190C(a5),a0
  6121.     fmove.s    0(a0,d0.l*4),fp0
  6122.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6123.     fmove.l    fp0,d3
  6124.     move.l    d0,d1
  6125.     mulu.l    #3,d1
  6126.     addq.l    #2,d1
  6127.     move.l    d3,0(a2,d1.l*4)
  6128.     addq.l    #1,d0
  6129. L1565
  6130.     cmp.l    d2,d0
  6131.     blo    L1564
  6132. L1566
  6133. ;                     
  6134.     bra    L1576
  6135. L1567
  6136. ;                     for (i=0;
  6137.     moveq    #0,d0
  6138.     bra    L1569
  6139. L1568
  6140. ;                        dst[i*4+0] = FLOAT_T
  6141.     lea    -$4B0C(a5),a0
  6142.     fmove.s    0(a0,d0.l*4),fp0
  6143.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6144.     fmove.l    fp0,d3
  6145.     move.l    d0,d1
  6146.     moveq    #2,d4
  6147.     asl.l    d4,d1
  6148.     move.l    d3,0(a2,d1.l*4)
  6149. ;                        dst[i*4+1] = FLOAT_T
  6150.     lea    -$320C(a5),a0
  6151.     fmove.s    0(a0,d0.l*4),fp0
  6152.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6153.     fmove.l    fp0,d3
  6154.     move.l    d0,d1
  6155.     moveq    #2,d4
  6156.     asl.l    d4,d1
  6157.     addq.l    #1,d1
  6158.     move.l    d3,0(a2,d1.l*4)
  6159. ;                        dst[i*4+2] = FLOAT_T
  6160.     lea    -$190C(a5),a0
  6161.     fmove.s    0(a0,d0.l*4),fp0
  6162.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6163.     fmove.l    fp0,d3
  6164.     move.l    d0,d1
  6165.     moveq    #2,d4
  6166.     asl.l    d4,d1
  6167.     addq.l    #2,d1
  6168.     move.l    d3,0(a2,d1.l*4)
  6169. ;                        dst[i*4+3] = FLOAT_T
  6170.     lea    -$640C(a5),a0
  6171.     fmove.s    0(a0,d0.l*4),fp0
  6172.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6173.     fmove.l    fp0,d3
  6174.     move.l    d0,d1
  6175.     moveq    #2,d4
  6176.     asl.l    d4,d1
  6177.     addq.l    #3,d1
  6178.     move.l    d3,0(a2,d1.l*4)
  6179.     addq.l    #1,d0
  6180. L1569
  6181.     cmp.l    d2,d0
  6182.     blo    L1568
  6183. L1570
  6184. ;                     
  6185.     bra    L1576
  6186. L1571
  6187. ;                     for (i=0;
  6188.     moveq    #0,d0
  6189.     bra    L1573
  6190. L1572
  6191. ;                        dst[i*4+0] = FLOAT_T
  6192.     lea    -$640C(a5),a0
  6193.     fmove.s    0(a0,d0.l*4),fp0
  6194.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6195.     fmove.l    fp0,d3
  6196.     move.l    d0,d1
  6197.     moveq    #2,d4
  6198.     asl.l    d4,d1
  6199.     move.l    d3,0(a2,d1.l*4)
  6200. ;                        dst[i*4+1] = FLOAT_T
  6201.     lea    -$4B0C(a5),a0
  6202.     fmove.s    0(a0,d0.l*4),fp0
  6203.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6204.     fmove.l    fp0,d3
  6205.     move.l    d0,d1
  6206.     moveq    #2,d4
  6207.     asl.l    d4,d1
  6208.     addq.l    #1,d1
  6209.     move.l    d3,0(a2,d1.l*4)
  6210. ;                        dst[i*4+2] = FLOAT_T
  6211.     lea    -$320C(a5),a0
  6212.     fmove.s    0(a0,d0.l*4),fp0
  6213.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6214.     fmove.l    fp0,d3
  6215.     move.l    d0,d1
  6216.     moveq    #2,d4
  6217.     asl.l    d4,d1
  6218.     addq.l    #2,d1
  6219.     move.l    d3,0(a2,d1.l*4)
  6220. ;                        dst[i*4+3] = FLOAT_T
  6221.     lea    -$190C(a5),a0
  6222.     fmove.s    0(a0,d0.l*4),fp0
  6223.     fmul.d    #$.41EFFFFF.FFE00000,fp0
  6224.     fmove.l    fp0,d3
  6225.     move.l    d0,d1
  6226.     moveq    #2,d4
  6227.     asl.l    d4,d1
  6228.     addq.l    #3,d1
  6229.     move.l    d3,0(a2,d1.l*4)
  6230.     addq.l    #1,d0
  6231. L1573
  6232.     cmp.l    d2,d0
  6233.     blo    L1572
  6234. L1574
  6235. ;                     
  6236.     bra.b    L1576
  6237. L1575
  6238. ;                     gl_problem(ctx, "bad forma
  6239.     move.l    #L1334,-(a7)
  6240.     move.l    a4,-(a7)
  6241.     jsr    _gl_problem
  6242.     addq.w    #$8,a7
  6243. L1576
  6244. ;               if (ctx->Pack.SwapBytes) 
  6245.     move.l    a4,a0
  6246.     add.l    #$E644,a0
  6247.     tst.b    $18(a0)
  6248.     beq.b    L1578
  6249. L1577
  6250. ;                  gl_swap4( (GLuint *) dst, n*n );
  6251.     move.l    d2,d0
  6252.     mulu.l    d2,d0
  6253.     move.l    d0,-(a7)
  6254.     move.l    a2,-(a7)
  6255.     jsr    _gl_swap4
  6256.     addq.w    #$8,a7
  6257. L1578
  6258. ;        
  6259.     bra    L1770
  6260. L1579
  6261. ;               GLint *dst = (GLint *) destination;
  6262. ;               switch (format)
  6263.     cmp.l    #$1909,d3
  6264.     beq    L1592
  6265.     bgt.b    L1794
  6266.     cmp.l    #$1905,d3
  6267.     beq    L1588
  6268.     bgt.b    L1795
  6269.     cmp.l    #$1903,d3
  6270.     beq    L1580
  6271.     cmp.l    #$1904,d3
  6272.     beq    L1584
  6273.     bra    L1620
  6274. L1795
  6275.     cmp.l    #$1907,d3
  6276.     beq    L1600
  6277.     cmp.l    #$1908,d3
  6278.     beq    L1604
  6279.     bra    L1620
  6280. L1794
  6281.     cmp.l    #$80E0,d3
  6282.     beq    L1608
  6283.     bgt.b    L1796
  6284.     cmp.l    #$190A,d3
  6285.     beq    L1596
  6286.     cmp.l    #$8000,d3
  6287.     beq    L1616
  6288.     bra    L1620
  6289. L1796
  6290.     cmp.l    #$80E1,d3
  6291.     beq    L1612
  6292.     bra    L1620
  6293. ;                  
  6294. L1580
  6295. ;                     for (i=0;
  6296.     moveq    #0,d0
  6297.     bra.b    L1582
  6298. L1581
  6299. ;                        dst[i] = FLOAT_TO_IN
  6300.     lea    -$190C(a5),a0
  6301.     fmove.s    0(a0,d0.l*4),fp0
  6302.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6303.     fmove.l    fp0,d1
  6304.     move.l    d1,0(a2,d0.l*4)
  6305.     addq.l    #1,d0
  6306. L1582
  6307.     cmp.l    d2,d0
  6308.     blo.b    L1581
  6309. L1583
  6310. ;                     
  6311.     bra    L1621
  6312. L1584
  6313. ;                     for (i=0;
  6314.     moveq    #0,d0
  6315.     bra.b    L1586
  6316. L1585
  6317. ;                        dst[i] = FLOAT_TO_IN
  6318.     lea    -$320C(a5),a0
  6319.     fmove.s    0(a0,d0.l*4),fp0
  6320.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6321.     fmove.l    fp0,d1
  6322.     move.l    d1,0(a2,d0.l*4)
  6323.     addq.l    #1,d0
  6324. L1586
  6325.     cmp.l    d2,d0
  6326.     blo.b    L1585
  6327. L1587
  6328. ;                     
  6329.     bra    L1621
  6330. L1588
  6331. ;                     for (i=0;
  6332.     moveq    #0,d0
  6333.     bra.b    L1590
  6334. L1589
  6335. ;                        dst[i] = FLOAT_TO_IN
  6336.     lea    -$4B0C(a5),a0
  6337.     fmove.s    0(a0,d0.l*4),fp0
  6338.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6339.     fmove.l    fp0,d1
  6340.     move.l    d1,0(a2,d0.l*4)
  6341.     addq.l    #1,d0
  6342. L1590
  6343.     cmp.l    d2,d0
  6344.     blo.b    L1589
  6345. L1591
  6346. ;                     
  6347.     bra    L1621
  6348. L1592
  6349. ;                     for (i=0;
  6350.     moveq    #0,d0
  6351.     bra.b    L1594
  6352. L1593
  6353. ;                        dst[i] = FLOAT_TO_IN
  6354.     lea    -$7D0C(a5),a0
  6355.     fmove.s    0(a0,d0.l*4),fp0
  6356.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6357.     fmove.l    fp0,d1
  6358.     move.l    d1,0(a2,d0.l*4)
  6359.     addq.l    #1,d0
  6360. L1594
  6361.     cmp.l    d2,d0
  6362.     blo.b    L1593
  6363. L1595
  6364. ;                     
  6365.     bra    L1621
  6366. L1596
  6367. ;                     for (i=0;
  6368.     moveq    #0,d0
  6369.     bra    L1598
  6370. L1597
  6371. ;                        dst[i*2+0] = FLOAT_T
  6372.     lea    -$7D0C(a5),a0
  6373.     fmove.s    0(a0,d0.l*4),fp0
  6374.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6375.     fmove.l    fp0,d3
  6376.     move.l    d0,d1
  6377.     moveq    #1,d4
  6378.     asl.l    d4,d1
  6379.     move.l    d3,0(a2,d1.l*4)
  6380. ;                        dst[i*2+1] = FLOAT_T
  6381.     lea    -$640C(a5),a0
  6382.     fmove.s    0(a0,d0.l*4),fp0
  6383.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6384.     fmove.l    fp0,d3
  6385.     move.l    d0,d1
  6386.     moveq    #1,d4
  6387.     asl.l    d4,d1
  6388.     addq.l    #1,d1
  6389.     move.l    d3,0(a2,d1.l*4)
  6390.     addq.l    #1,d0
  6391. L1598
  6392.     cmp.l    d2,d0
  6393.     blo.b    L1597
  6394. L1599
  6395. ;                     
  6396.     bra    L1621
  6397. L1600
  6398. ;                     for (i=0;
  6399.     moveq    #0,d0
  6400.     bra    L1602
  6401. L1601
  6402. ;                        dst[i*3+0] = FLOAT_T
  6403.     lea    -$190C(a5),a0
  6404.     fmove.s    0(a0,d0.l*4),fp0
  6405.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6406.     fmove.l    fp0,d3
  6407.     move.l    d0,d1
  6408.     mulu.l    #3,d1
  6409.     move.l    d3,0(a2,d1.l*4)
  6410. ;                        dst[i*3+1] = FLOAT_T
  6411.     lea    -$320C(a5),a0
  6412.     fmove.s    0(a0,d0.l*4),fp0
  6413.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6414.     fmove.l    fp0,d3
  6415.     move.l    d0,d1
  6416.     mulu.l    #3,d1
  6417.     addq.l    #1,d1
  6418.     move.l    d3,0(a2,d1.l*4)
  6419. ;                        dst[i*3+2] = FLOAT_T
  6420.     lea    -$4B0C(a5),a0
  6421.     fmove.s    0(a0,d0.l*4),fp0
  6422.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6423.     fmove.l    fp0,d3
  6424.     move.l    d0,d1
  6425.     mulu.l    #3,d1
  6426.     addq.l    #2,d1
  6427.     move.l    d3,0(a2,d1.l*4)
  6428.     addq.l    #1,d0
  6429. L1602
  6430.     cmp.l    d2,d0
  6431.     blo    L1601
  6432. L1603
  6433. ;                     
  6434.     bra    L1621
  6435. L1604
  6436. ;                     for (i=0;
  6437.     moveq    #0,d0
  6438.     bra    L1606
  6439. L1605
  6440. ;                        dst[i*4+0] = FLOAT_T
  6441.     lea    -$190C(a5),a0
  6442.     fmove.s    0(a0,d0.l*4),fp0
  6443.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6444.     fmove.l    fp0,d3
  6445.     move.l    d0,d1
  6446.     moveq    #2,d4
  6447.     asl.l    d4,d1
  6448.     move.l    d3,0(a2,d1.l*4)
  6449. ;                        dst[i*4+1] = FLOAT_T
  6450.     lea    -$320C(a5),a0
  6451.     fmove.s    0(a0,d0.l*4),fp0
  6452.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6453.     fmove.l    fp0,d3
  6454.     move.l    d0,d1
  6455.     moveq    #2,d4
  6456.     asl.l    d4,d1
  6457.     addq.l    #1,d1
  6458.     move.l    d3,0(a2,d1.l*4)
  6459. ;                        dst[i*4+2] = FLOAT_T
  6460.     lea    -$4B0C(a5),a0
  6461.     fmove.s    0(a0,d0.l*4),fp0
  6462.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6463.     fmove.l    fp0,d3
  6464.     move.l    d0,d1
  6465.     moveq    #2,d4
  6466.     asl.l    d4,d1
  6467.     addq.l    #2,d1
  6468.     move.l    d3,0(a2,d1.l*4)
  6469. ;                        dst[i*4+3] = FLOAT_T
  6470.     lea    -$640C(a5),a0
  6471.     fmove.s    0(a0,d0.l*4),fp0
  6472.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6473.     fmove.l    fp0,d3
  6474.     move.l    d0,d1
  6475.     moveq    #2,d4
  6476.     asl.l    d4,d1
  6477.     addq.l    #3,d1
  6478.     move.l    d3,0(a2,d1.l*4)
  6479.     addq.l    #1,d0
  6480. L1606
  6481.     cmp.l    d2,d0
  6482.     blo    L1605
  6483. L1607
  6484. ;                     
  6485.     bra    L1621
  6486. L1608
  6487. ;                     for (i=0;
  6488.     moveq    #0,d0
  6489.     bra    L1610
  6490. L1609
  6491. ;                        dst[i*3+0] = FLOAT_T
  6492.     lea    -$4B0C(a5),a0
  6493.     fmove.s    0(a0,d0.l*4),fp0
  6494.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6495.     fmove.l    fp0,d3
  6496.     move.l    d0,d1
  6497.     mulu.l    #3,d1
  6498.     move.l    d3,0(a2,d1.l*4)
  6499. ;                        dst[i*3+1] = FLOAT_T
  6500.     lea    -$320C(a5),a0
  6501.     fmove.s    0(a0,d0.l*4),fp0
  6502.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6503.     fmove.l    fp0,d3
  6504.     move.l    d0,d1
  6505.     mulu.l    #3,d1
  6506.     addq.l    #1,d1
  6507.     move.l    d3,0(a2,d1.l*4)
  6508. ;                        dst[i*3+2] = FLOAT_T
  6509.     lea    -$190C(a5),a0
  6510.     fmove.s    0(a0,d0.l*4),fp0
  6511.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6512.     fmove.l    fp0,d3
  6513.     move.l    d0,d1
  6514.     mulu.l    #3,d1
  6515.     addq.l    #2,d1
  6516.     move.l    d3,0(a2,d1.l*4)
  6517.     addq.l    #1,d0
  6518. L1610
  6519.     cmp.l    d2,d0
  6520.     blo    L1609
  6521. L1611
  6522. ;                     
  6523.     bra    L1621
  6524. L1612
  6525. ;                     for (i=0;
  6526.     moveq    #0,d0
  6527.     bra    L1614
  6528. L1613
  6529. ;                        dst[i*4+0] = FLOAT_T
  6530.     lea    -$4B0C(a5),a0
  6531.     fmove.s    0(a0,d0.l*4),fp0
  6532.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6533.     fmove.l    fp0,d3
  6534.     move.l    d0,d1
  6535.     moveq    #2,d4
  6536.     asl.l    d4,d1
  6537.     move.l    d3,0(a2,d1.l*4)
  6538. ;                        dst[i*4+1] = FLOAT_T
  6539.     lea    -$320C(a5),a0
  6540.     fmove.s    0(a0,d0.l*4),fp0
  6541.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6542.     fmove.l    fp0,d3
  6543.     move.l    d0,d1
  6544.     moveq    #2,d4
  6545.     asl.l    d4,d1
  6546.     addq.l    #1,d1
  6547.     move.l    d3,0(a2,d1.l*4)
  6548. ;                        dst[i*4+2] = FLOAT_T
  6549.     lea    -$190C(a5),a0
  6550.     fmove.s    0(a0,d0.l*4),fp0
  6551.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6552.     fmove.l    fp0,d3
  6553.     move.l    d0,d1
  6554.     moveq    #2,d4
  6555.     asl.l    d4,d1
  6556.     addq.l    #2,d1
  6557.     move.l    d3,0(a2,d1.l*4)
  6558. ;                        dst[i*4+3] = FLOAT_T
  6559.     lea    -$640C(a5),a0
  6560.     fmove.s    0(a0,d0.l*4),fp0
  6561.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6562.     fmove.l    fp0,d3
  6563.     move.l    d0,d1
  6564.     moveq    #2,d4
  6565.     asl.l    d4,d1
  6566.     addq.l    #3,d1
  6567.     move.l    d3,0(a2,d1.l*4)
  6568.     addq.l    #1,d0
  6569. L1614
  6570.     cmp.l    d2,d0
  6571.     blo    L1613
  6572. L1615
  6573. ;                     
  6574.     bra    L1621
  6575. L1616
  6576. ;                     for (i=0;
  6577.     moveq    #0,d0
  6578.     bra    L1618
  6579. L1617
  6580. ;                        dst[i*4+0] = FLOAT_T
  6581.     lea    -$640C(a5),a0
  6582.     fmove.s    0(a0,d0.l*4),fp0
  6583.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6584.     fmove.l    fp0,d3
  6585.     move.l    d0,d1
  6586.     moveq    #2,d4
  6587.     asl.l    d4,d1
  6588.     move.l    d3,0(a2,d1.l*4)
  6589. ;                        dst[i*4+1] = FLOAT_T
  6590.     lea    -$4B0C(a5),a0
  6591.     fmove.s    0(a0,d0.l*4),fp0
  6592.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6593.     fmove.l    fp0,d3
  6594.     move.l    d0,d1
  6595.     moveq    #2,d4
  6596.     asl.l    d4,d1
  6597.     addq.l    #1,d1
  6598.     move.l    d3,0(a2,d1.l*4)
  6599. ;                        dst[i*4+2] = FLOAT_T
  6600.     lea    -$320C(a5),a0
  6601.     fmove.s    0(a0,d0.l*4),fp0
  6602.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6603.     fmove.l    fp0,d3
  6604.     move.l    d0,d1
  6605.     moveq    #2,d4
  6606.     asl.l    d4,d1
  6607.     addq.l    #2,d1
  6608.     move.l    d3,0(a2,d1.l*4)
  6609. ;                        dst[i*4+3] = FLOAT_T
  6610.     lea    -$190C(a5),a0
  6611.     fmove.s    0(a0,d0.l*4),fp0
  6612.     fmul.d    #$.41DFFFFF.FFC00000,fp0
  6613.     fmove.l    fp0,d3
  6614.     move.l    d0,d1
  6615.     moveq    #2,d4
  6616.     asl.l    d4,d1
  6617.     addq.l    #3,d1
  6618.     move.l    d3,0(a2,d1.l*4)
  6619.     addq.l    #1,d0
  6620. L1618
  6621.     cmp.l    d2,d0
  6622.     blo    L1617
  6623. L1619
  6624. ;                     
  6625.     bra.b    L1621
  6626. L1620
  6627. ;                     gl_problem(ctx, "bad forma
  6628.     move.l    #L1334,-(a7)
  6629.     move.l    a4,-(a7)
  6630.     jsr    _gl_problem
  6631.     addq.w    #$8,a7
  6632. L1621
  6633. ;           if (ctx->Pack.SwapBytes) 
  6634.     move.l    a4,a0
  6635.     add.l    #$E644,a0
  6636.     tst.b    $18(a0)
  6637.     beq.b    L1623
  6638. L1622
  6639. ;          gl_swap4( (GLuint *) dst, n*n );
  6640.     move.l    d2,d0
  6641.     mulu.l    d2,d0
  6642.     move.l    d0,-(a7)
  6643.     move.l    a2,-(a7)
  6644.     jsr    _gl_swap4
  6645.     addq.w    #$8,a7
  6646. L1623
  6647. ;        
  6648.     bra    L1770
  6649. L1624
  6650. ;               GLfloat *dst = (GLfloat *) destination;
  6651. ;               switch (format)
  6652.     cmp.l    #$1909,d3
  6653.     beq    L1637
  6654.     bgt.b    L1797
  6655.     cmp.l    #$1905,d3
  6656.     beq    L1633
  6657.     bgt.b    L1798
  6658.     cmp.l    #$1903,d3
  6659.     beq    L1625
  6660.     cmp.l    #$1904,d3
  6661.     beq    L1629
  6662.     bra    L1665
  6663. L1798
  6664.     cmp.l    #$1907,d3
  6665.     beq    L1645
  6666.     cmp.l    #$1908,d3
  6667.     beq    L1649
  6668.     bra    L1665
  6669. L1797
  6670.     cmp.l    #$80E0,d3
  6671.     beq    L1653
  6672.     bgt.b    L1799
  6673.     cmp.l    #$190A,d3
  6674.     beq    L1641
  6675.     cmp.l    #$8000,d3
  6676.     beq    L1661
  6677.     bra    L1665
  6678. L1799
  6679.     cmp.l    #$80E1,d3
  6680.     beq    L1657
  6681.     bra    L1665
  6682. ;                  
  6683. L1625
  6684. ;                     for (i=0;
  6685.     moveq    #0,d0
  6686.     bra.b    L1627
  6687. L1626
  6688. ;                        dst[i] = red[i];
  6689.     lea    -$190C(a5),a0
  6690.     fmove.s    0(a0,d0.l*4),fp0
  6691.     fmove.s    fp0,0(a2,d0.l*4)
  6692.     addq.l    #1,d0
  6693. L1627
  6694.     cmp.l    d2,d0
  6695.     blo.b    L1626
  6696. L1628
  6697. ;                     
  6698.     bra    L1666
  6699. L1629
  6700. ;                     for (i=0;
  6701.     moveq    #0,d0
  6702.     bra.b    L1631
  6703. L1630
  6704. ;                        dst[i] = green[i];
  6705.     lea    -$320C(a5),a0
  6706.     fmove.s    0(a0,d0.l*4),fp0
  6707.     fmove.s    fp0,0(a2,d0.l*4)
  6708.     addq.l    #1,d0
  6709. L1631
  6710.     cmp.l    d2,d0
  6711.     blo.b    L1630
  6712. L1632
  6713. ;                     
  6714.     bra    L1666
  6715. L1633
  6716. ;                     for (i=0;
  6717.     moveq    #0,d0
  6718.     bra.b    L1635
  6719. L1634
  6720. ;                        dst[i] = blue[i];
  6721.     lea    -$4B0C(a5),a0
  6722.     fmove.s    0(a0,d0.l*4),fp0
  6723.     fmove.s    fp0,0(a2,d0.l*4)
  6724.     addq.l    #1,d0
  6725. L1635
  6726.     cmp.l    d2,d0
  6727.     blo.b    L1634
  6728. L1636
  6729. ;                     
  6730.     bra    L1666
  6731. L1637
  6732. ;                     for (i=0;
  6733.     moveq    #0,d0
  6734.     bra.b    L1639
  6735. L1638
  6736. ;                        dst[i] = luminance[i
  6737.     lea    -$7D0C(a5),a0
  6738.     fmove.s    0(a0,d0.l*4),fp0
  6739.     fmove.s    fp0,0(a2,d0.l*4)
  6740.     addq.l    #1,d0
  6741. L1639
  6742.     cmp.l    d2,d0
  6743.     blo.b    L1638
  6744. L1640
  6745. ;                     
  6746.     bra    L1666
  6747. L1641
  6748. ;                     for (i=0;
  6749.     moveq    #0,d0
  6750.     bra.b    L1643
  6751. L1642
  6752. ;                        dst[i*2+0] = luminan
  6753.     lea    -$7D0C(a5),a0
  6754.     fmove.s    0(a0,d0.l*4),fp0
  6755.     move.l    d0,d1
  6756.     moveq    #1,d3
  6757.     asl.l    d3,d1
  6758.     fmove.s    fp0,0(a2,d1.l*4)
  6759. ;                        dst[i*2+1] = alpha[i
  6760.     lea    -$640C(a5),a0
  6761.     fmove.s    0(a0,d0.l*4),fp0
  6762.     move.l    d0,d1
  6763.     moveq    #1,d3
  6764.     asl.l    d3,d1
  6765.     addq.l    #1,d1
  6766.     fmove.s    fp0,0(a2,d1.l*4)
  6767.     addq.l    #1,d0
  6768. L1643
  6769.     cmp.l    d2,d0
  6770.     blo.b    L1642
  6771. L1644
  6772. ;                     
  6773.     bra    L1666
  6774. L1645
  6775. ;                     for (i=0;
  6776.     moveq    #0,d0
  6777.     bra    L1647
  6778. L1646
  6779. ;                        dst[i*3+0] = red[i];
  6780.     lea    -$190C(a5),a0
  6781.     fmove.s    0(a0,d0.l*4),fp0
  6782.     move.l    d0,d1
  6783.     mulu.l    #3,d1
  6784.     fmove.s    fp0,0(a2,d1.l*4)
  6785. ;                        dst[i*3+1] = green[i
  6786.     lea    -$320C(a5),a0
  6787.     fmove.s    0(a0,d0.l*4),fp0
  6788.     move.l    d0,d1
  6789.     mulu.l    #3,d1
  6790.     addq.l    #1,d1
  6791.     fmove.s    fp0,0(a2,d1.l*4)
  6792. ;                        dst[i*3+2] = blue[i];
  6793.     lea    -$4B0C(a5),a0
  6794.     fmove.s    0(a0,d0.l*4),fp0
  6795.     move.l    d0,d1
  6796.     mulu.l    #3,d1
  6797.     addq.l    #2,d1
  6798.     fmove.s    fp0,0(a2,d1.l*4)
  6799.     addq.l    #1,d0
  6800. L1647
  6801.     cmp.l    d2,d0
  6802.     blo.b    L1646
  6803. L1648
  6804. ;                     
  6805.     bra    L1666
  6806. L1649
  6807. ;                     for (i=0;
  6808.     moveq    #0,d0
  6809.     bra    L1651
  6810. L1650
  6811. ;                        dst[i*4+0] = red[i];
  6812.     lea    -$190C(a5),a0
  6813.     fmove.s    0(a0,d0.l*4),fp0
  6814.     move.l    d0,d1
  6815.     moveq    #2,d3
  6816.     asl.l    d3,d1
  6817.     fmove.s    fp0,0(a2,d1.l*4)
  6818. ;                        dst[i*4+1] = green[i
  6819.     lea    -$320C(a5),a0
  6820.     fmove.s    0(a0,d0.l*4),fp0
  6821.     move.l    d0,d1
  6822.     moveq    #2,d3
  6823.     asl.l    d3,d1
  6824.     addq.l    #1,d1
  6825.     fmove.s    fp0,0(a2,d1.l*4)
  6826. ;                        dst[i*4+2] = blue[i];
  6827.     lea    -$4B0C(a5),a0
  6828.     fmove.s    0(a0,d0.l*4),fp0
  6829.     move.l    d0,d1
  6830.     moveq    #2,d3
  6831.     asl.l    d3,d1
  6832.     addq.l    #2,d1
  6833.     fmove.s    fp0,0(a2,d1.l*4)
  6834. ;                        dst[i*4+3] = alpha[i
  6835.     lea    -$640C(a5),a0
  6836.     fmove.s    0(a0,d0.l*4),fp0
  6837.     move.l    d0,d1
  6838.     moveq    #2,d3
  6839.     asl.l    d3,d1
  6840.     addq.l    #3,d1
  6841.     fmove.s    fp0,0(a2,d1.l*4)
  6842.     addq.l    #1,d0
  6843. L1651
  6844.     cmp.l    d2,d0
  6845.     blo.b    L1650
  6846. L1652
  6847. ;                     
  6848.     bra    L1666
  6849. L1653
  6850. ;                     for (i=0;
  6851.     moveq    #0,d0
  6852.     bra    L1655
  6853. L1654
  6854. ;                        dst[i*3+0] = blue[i];
  6855.     lea    -$4B0C(a5),a0
  6856.     fmove.s    0(a0,d0.l*4),fp0
  6857.     move.l    d0,d1
  6858.     mulu.l    #3,d1
  6859.     fmove.s    fp0,0(a2,d1.l*4)
  6860. ;                        dst[i*3+1] = green[i
  6861.     lea    -$320C(a5),a0
  6862.     fmove.s    0(a0,d0.l*4),fp0
  6863.     move.l    d0,d1
  6864.     mulu.l    #3,d1
  6865.     addq.l    #1,d1
  6866.     fmove.s    fp0,0(a2,d1.l*4)
  6867. ;                        dst[i*3+2] = red[i];
  6868.     lea    -$190C(a5),a0
  6869.     fmove.s    0(a0,d0.l*4),fp0
  6870.     move.l    d0,d1
  6871.     mulu.l    #3,d1
  6872.     addq.l    #2,d1
  6873.     fmove.s    fp0,0(a2,d1.l*4)
  6874.     addq.l    #1,d0
  6875. L1655
  6876.     cmp.l    d2,d0
  6877.     blo.b    L1654
  6878. L1656
  6879. ;                     
  6880.     bra    L1666
  6881. L1657
  6882. ;                     for (i=0;
  6883.     moveq    #0,d0
  6884.     bra    L1659
  6885. L1658
  6886. ;                        dst[i*4+0] = blue[i];
  6887.     lea    -$4B0C(a5),a0
  6888.     fmove.s    0(a0,d0.l*4),fp0
  6889.     move.l    d0,d1
  6890.     moveq    #2,d3
  6891.     asl.l    d3,d1
  6892.     fmove.s    fp0,0(a2,d1.l*4)
  6893. ;                        dst[i*4+1] = green[i
  6894.     lea    -$320C(a5),a0
  6895.     fmove.s    0(a0,d0.l*4),fp0
  6896.     move.l    d0,d1
  6897.     moveq    #2,d3
  6898.     asl.l    d3,d1
  6899.     addq.l    #1,d1
  6900.     fmove.s    fp0,0(a2,d1.l*4)
  6901. ;                        dst[i*4+2] = red[i];
  6902.     lea    -$190C(a5),a0
  6903.     fmove.s    0(a0,d0.l*4),fp0
  6904.     move.l    d0,d1
  6905.     moveq    #2,d3
  6906.     asl.l    d3,d1
  6907.     addq.l    #2,d1
  6908.     fmove.s    fp0,0(a2,d1.l*4)
  6909. ;                        dst[i*4+3] = alpha[i
  6910.     lea    -$640C(a5),a0
  6911.     fmove.s    0(a0,d0.l*4),fp0
  6912.     move.l    d0,d1
  6913.     moveq    #2,d3
  6914.     asl.l    d3,d1
  6915.     addq.l    #3,d1
  6916.     fmove.s    fp0,0(a2,d1.l*4)
  6917.     addq.l    #1,d0
  6918. L1659
  6919.     cmp.l    d2,d0
  6920.     blo.b    L1658
  6921. L1660
  6922. ;                     
  6923.     bra    L1666
  6924. L1661
  6925. ;                     for (i=0;
  6926.     moveq    #0,d0
  6927.     bra    L1663
  6928. L1662
  6929. ;                        dst[i*4+0] = alpha[i
  6930.     lea    -$640C(a5),a0
  6931.     fmove.s    0(a0,d0.l*4),fp0
  6932.     move.l    d0,d1
  6933.     moveq    #2,d3
  6934.     asl.l    d3,d1
  6935.     fmove.s    fp0,0(a2,d1.l*4)
  6936. ;                        dst[i*4+1] = blue[i];
  6937.     lea    -$4B0C(a5),a0
  6938.     fmove.s    0(a0,d0.l*4),fp0
  6939.     move.l    d0,d1
  6940.     moveq    #2,d3
  6941.     asl.l    d3,d1
  6942.     addq.l    #1,d1
  6943.     fmove.s    fp0,0(a2,d1.l*4)
  6944. ;                        dst[i*4+2] = green[i
  6945.     lea    -$320C(a5),a0
  6946.     fmove.s    0(a0,d0.l*4),fp0
  6947.     move.l    d0,d1
  6948.     moveq    #2,d3
  6949.     asl.l    d3,d1
  6950.     addq.l    #2,d1
  6951.     fmove.s    fp0,0(a2,d1.l*4)
  6952. ;                        dst[i*4+3] = red[i];
  6953.     lea    -$190C(a5),a0
  6954.     fmove.s    0(a0,d0.l*4),fp0
  6955.     move.l    d0,d1
  6956.     moveq    #2,d3
  6957.     asl.l    d3,d1
  6958.     addq.l    #3,d1
  6959.     fmove.s    fp0,0(a2,d1.l*4)
  6960.     addq.l    #1,d0
  6961. L1663
  6962.     cmp.l    d2,d0
  6963.     blo.b    L1662
  6964. L1664
  6965. ;                     
  6966.     bra.b    L1666
  6967. L1665
  6968. ;                     gl_problem(ctx, "bad forma
  6969.     move.l    #L1334,-(a7)
  6970.     move.l    a4,-(a7)
  6971.     jsr    _gl_problem
  6972.     addq.w    #$8,a7
  6973. L1666
  6974. ;           if (ctx->Pack.SwapBytes) 
  6975.     move.l    a4,a0
  6976.     add.l    #$E644,a0
  6977.     tst.b    $18(a0)
  6978.     beq.b    L1668
  6979. L1667
  6980. ;          gl_swap4( (GLuint *) dst, n*n );
  6981.     move.l    d2,d0
  6982.     mulu.l    d2,d0
  6983.     move.l    d0,-(a7)
  6984.     move.l    a2,-(a7)
  6985.     jsr    _gl_swap4
  6986.     addq.w    #$8,a7
  6987. L1668
  6988. ;        
  6989.     bra    L1770
  6990. L1669
  6991. ;            if (format == GL_RGB) 
  6992.     cmp.l    #$1907,d3
  6993.     bne    L1673
  6994. L1670
  6995. ;               GLubyte *dst = (GLubyte *) destination;
  6996.     move.l    a2,a1
  6997. ;               for (i=0;
  6998.     moveq    #0,d0
  6999.     bra    L1672
  7000. L1671
  7001. ;                  dst[i] = (((GLint) (red[i]   * 7
  7002.     lea    -$190C(a5),a0
  7003.     fmove.s    0(a0,d0.l*4),fp0
  7004.     fmul.s    #$.40E00000,fp0
  7005.     fmove.l    fp0,d1
  7006.     moveq    #5,d3
  7007.     asl.l    d3,d1
  7008.     lea    -$320C(a5),a0
  7009.     fmove.s    0(a0,d0.l*4),fp0
  7010.     fmul.s    #$.40E00000,fp0
  7011.     fmove.l    fp0,d3
  7012.     moveq    #2,d4
  7013.     asl.l    d4,d3
  7014.     or.l    d3,d1
  7015.     lea    -$4B0C(a5),a0
  7016.     fmove.s    0(a0,d0.l*4),fp0
  7017.     fmul.s    #$.40400000,fp0
  7018.     fmove.l    fp0,d3
  7019.     or.l    d3,d1
  7020.     move.b    d1,0(a1,d0.l)
  7021.     addq.l    #1,d0
  7022. L1672
  7023.     cmp.l    d2,d0
  7024.     blo.b    L1671
  7025. L1673
  7026. ;            
  7027.     bra    L1770
  7028. L1674
  7029. ;            if (format == GL_RGB) 
  7030.     cmp.l    #$1907,d3
  7031.     bne    L1678
  7032. L1675
  7033. ;               GLubyte *dst = (GLubyte *) destination;
  7034.     move.l    a2,a1
  7035. ;               for (i=0;
  7036.     moveq    #0,d0
  7037.     bra    L1677
  7038. L1676
  7039. ;                  dst[i] = (((GLint) (red[i]   * 7
  7040.     lea    -$190C(a5),a0
  7041.     fmove.s    0(a0,d0.l*4),fp0
  7042.     fmul.s    #$.40E00000,fp0
  7043.     fmove.l    fp0,d1
  7044.     lea    -$320C(a5),a0
  7045.     fmove.s    0(a0,d0.l*4),fp0
  7046.     fmul.s    #$.40E00000,fp0
  7047.     fmove.l    fp0,d3
  7048.     moveq    #3,d4
  7049.     asl.l    d4,d3
  7050.     or.l    d3,d1
  7051.     lea    -$4B0C(a5),a0
  7052.     fmove.s    0(a0,d0.l*4),fp0
  7053.     fmul.s    #$.40400000,fp0
  7054.     fmove.l    fp0,d3
  7055.     moveq    #5,d4
  7056.     asl.l    d4,d3
  7057.     or.l    d3,d1
  7058.     move.b    d1,0(a1,d0.l)
  7059.     addq.l    #1,d0
  7060. L1677
  7061.     cmp.l    d2,d0
  7062.     blo.b    L1676
  7063. L1678
  7064. ;            
  7065.     bra    L1770
  7066. L1679
  7067. ;            if (format == GL_RGB) 
  7068.     cmp.l    #$1907,d3
  7069.     bne    L1683
  7070. L1680
  7071. ;               GLushort *dst = (GLushort *) destinati
  7072.     move.l    a2,a1
  7073. ;               for (i=0;
  7074.     moveq    #0,d0
  7075.     bra    L1682
  7076. L1681
  7077. ;                  dst[i] = (((GLint) (red[i]   * 3
  7078.     lea    -$190C(a5),a0
  7079.     fmove.s    0(a0,d0.l*4),fp0
  7080.     fmul.s    #$.41F80000,fp0
  7081.     fmove.l    fp0,d1
  7082.     moveq    #$B,d3
  7083.     asl.l    d3,d1
  7084.     lea    -$320C(a5),a0
  7085.     fmove.s    0(a0,d0.l*4),fp0
  7086.     fmul.s    #$.427C0000,fp0
  7087.     fmove.l    fp0,d3
  7088.     moveq    #5,d4
  7089.     asl.l    d4,d3
  7090.     or.l    d3,d1
  7091.     lea    -$4B0C(a5),a0
  7092.     fmove.s    0(a0,d0.l*4),fp0
  7093.     fmul.s    #$.41F80000,fp0
  7094.     fmove.l    fp0,d3
  7095.     or.l    d3,d1
  7096.     move.w    d1,0(a1,d0.l*2)
  7097.     addq.l    #1,d0
  7098. L1682
  7099.     cmp.l    d2,d0
  7100.     blo.b    L1681
  7101. L1683
  7102. ;            
  7103.     bra    L1770
  7104. L1684
  7105. ;            if (format == GL_RGB) 
  7106.     cmp.l    #$1907,d3
  7107.     bne    L1688
  7108. L1685
  7109. ;               GLushort *dst = (GLushort *) destinati
  7110.     move.l    a2,a1
  7111. ;               for (i=0;
  7112.     moveq    #0,d0
  7113.     bra    L1687
  7114. L1686
  7115. ;                  dst[i] = (((GLint) (red[i]   * 3
  7116.     lea    -$190C(a5),a0
  7117.     fmove.s    0(a0,d0.l*4),fp0
  7118.     fmul.s    #$.41F80000,fp0
  7119.     fmove.l    fp0,d1
  7120.     lea    -$320C(a5),a0
  7121.     fmove.s    0(a0,d0.l*4),fp0
  7122.     fmul.s    #$.427C0000,fp0
  7123.     fmove.l    fp0,d3
  7124.     moveq    #5,d4
  7125.     asl.l    d4,d3
  7126.     or.l    d3,d1
  7127.     lea    -$4B0C(a5),a0
  7128.     fmove.s    0(a0,d0.l*4),fp0
  7129.     fmul.s    #$.41F80000,fp0
  7130.     fmove.l    fp0,d3
  7131.     moveq    #$B,d4
  7132.     asl.l    d4,d3
  7133.     or.l    d3,d1
  7134.     move.w    d1,0(a1,d0.l*2)
  7135.     addq.l    #1,d0
  7136. L1687
  7137.     cmp.l    d2,d0
  7138.     blo.b    L1686
  7139. L1688
  7140. ;            
  7141.     bra    L1770
  7142. L1689
  7143. ;            if (format == GL_RGB) 
  7144.     cmp.l    #$1907,d3
  7145.     bne    L1693
  7146. L1690
  7147. ;               GLushort *dst = (GLushort *) destinati
  7148.     move.l    a2,a1
  7149. ;               for (i=0;
  7150.     moveq    #0,d0
  7151.     bra    L1692
  7152. L1691
  7153. ;                  dst[i] = (((GLint) (red[i]   * 1
  7154.     lea    -$190C(a5),a0
  7155.     fmove.s    0(a0,d0.l*4),fp0
  7156.     fmul.s    #$.41700000,fp0
  7157.     fmove.l    fp0,d1
  7158.     moveq    #$C,d3
  7159.     asl.l    d3,d1
  7160.     lea    -$320C(a5),a0
  7161.     fmove.s    0(a0,d0.l*4),fp0
  7162.     fmul.s    #$.41700000,fp0
  7163.     fmove.l    fp0,d3
  7164.     moveq    #$8,d4
  7165.     asl.l    d4,d3
  7166.     or.l    d3,d1
  7167.     lea    -$4B0C(a5),a0
  7168.     fmove.s    0(a0,d0.l*4),fp0
  7169.     fmul.s    #$.41700000,fp0
  7170.     fmove.l    fp0,d3
  7171.     moveq    #4,d4
  7172.     asl.l    d4,d3
  7173.     or.l    d3,d1
  7174.     lea    -$640C(a5),a0
  7175.     fmove.s    0(a0,d0.l*4),fp0
  7176.     fmul.s    #$.41700000,fp0
  7177.     fmove.l    fp0,d3
  7178.     or.l    d3,d1
  7179.     move.w    d1,0(a1,d0.l*2)
  7180.     addq.l    #1,d0
  7181. L1692
  7182.     cmp.l    d2,d0
  7183.     blo.b    L1691
  7184. L1693
  7185. ;            
  7186.     bra    L1770
  7187. L1694
  7188. ;            if (format == GL_RGB) 
  7189.     cmp.l    #$1907,d3
  7190.     bne    L1698
  7191. L1695
  7192. ;               GLushort *dst = (GLushort *) destinati
  7193.     move.l    a2,a1
  7194. ;               for (i=0;
  7195.     moveq    #0,d0
  7196.     bra    L1697
  7197. L1696
  7198. ;                  dst[i] = (((GLint) (red[i]   * 1
  7199.     lea    -$190C(a5),a0
  7200.     fmove.s    0(a0,d0.l*4),fp0
  7201.     fmul.s    #$.41700000,fp0
  7202.     fmove.l    fp0,d1
  7203.     lea    -$320C(a5),a0
  7204.     fmove.s    0(a0,d0.l*4),fp0
  7205.     fmul.s    #$.41700000,fp0
  7206.     fmove.l    fp0,d3
  7207.     moveq    #4,d4
  7208.     asl.l    d4,d3
  7209.     or.l    d3,d1
  7210.     lea    -$4B0C(a5),a0
  7211.     fmove.s    0(a0,d0.l*4),fp0
  7212.     fmul.s    #$.41700000,fp0
  7213.     fmove.l    fp0,d3
  7214.     moveq    #$8,d4
  7215.     asl.l    d4,d3
  7216.     or.l    d3,d1
  7217.     lea    -$640C(a5),a0
  7218.     fmove.s    0(a0,d0.l*4),fp0
  7219.     fmul.s    #$.41700000,fp0
  7220.     fmove.l    fp0,d3
  7221.     moveq    #$C,d4
  7222.     asl.l    d4,d3
  7223.     or.l    d3,d1
  7224.     move.w    d1,0(a1,d0.l*2)
  7225.     addq.l    #1,d0
  7226. L1697
  7227.     cmp.l    d2,d0
  7228.     blo.b    L1696
  7229. L1698
  7230. ;            
  7231.     bra    L1770
  7232. L1699
  7233. ;            if (format == GL_RGB) 
  7234.     cmp.l    #$1907,d3
  7235.     bne    L1703
  7236. L1700
  7237. ;               GLushort *dst = (GLushort *) destinati
  7238.     move.l    a2,a1
  7239. ;               for (i=0;
  7240.     moveq    #0,d0
  7241.     bra    L1702
  7242. L1701
  7243. ;                  dst[i] = (((GLint) (red[i]   * 3
  7244.     lea    -$190C(a5),a0
  7245.     fmove.s    0(a0,d0.l*4),fp0
  7246.     fmul.s    #$.41F80000,fp0
  7247.     fmove.l    fp0,d1
  7248.     moveq    #$B,d3
  7249.     asl.l    d3,d1
  7250.     lea    -$320C(a5),a0
  7251.     fmove.s    0(a0,d0.l*4),fp0
  7252.     fmul.s    #$.41F80000,fp0
  7253.     fmove.l    fp0,d3
  7254.     moveq    #6,d4
  7255.     asl.l    d4,d3
  7256.     or.l    d3,d1
  7257.     lea    -$4B0C(a5),a0
  7258.     fmove.s    0(a0,d0.l*4),fp0
  7259.     fmul.s    #$.41F80000,fp0
  7260.     fmove.l    fp0,d3
  7261.     moveq    #1,d4
  7262.     asl.l    d4,d3
  7263.     or.l    d3,d1
  7264.     lea    -$640C(a5),a0
  7265.     fmove.s    0(a0,d0.l*4),fp0
  7266.     fmul.s    #$.3F800000,fp0
  7267.     fmove.l    fp0,d3
  7268.     or.l    d3,d1
  7269.     move.w    d1,0(a1,d0.l*2)
  7270.     addq.l    #1,d0
  7271. L1702
  7272.     cmp.l    d2,d0
  7273.     blo.b    L1701
  7274. L1703
  7275. ;            
  7276.     bra    L1770
  7277. L1704
  7278. ;            if (format == GL_RGB) 
  7279.     cmp.l    #$1907,d3
  7280.     bne    L1708
  7281. L1705
  7282. ;               GLushort *dst = (GLushort *) destinati
  7283.     move.l    a2,a1
  7284. ;               for (i=0;
  7285.     moveq    #0,d0
  7286.     bra    L1707
  7287. L1706
  7288. ;               }
  7289.     lea    -$190C(a5),a0
  7290.     fmove.s    0(a0,d0.l*4),fp0
  7291.     fmul.s    #$.41F80000,fp0
  7292.     fmove.l    fp0,d1
  7293.     lea    -$320C(a5),a0
  7294.     fmove.s    0(a0,d0.l*4),fp0
  7295.     fmul.s    #$.41F80000,fp0
  7296.     fmove.l    fp0,d3
  7297.     moveq    #5,d4
  7298.     asl.l    d4,d3
  7299.     or.l    d3,d1
  7300.     lea    -$4B0C(a5),a0
  7301.     fmove.s    0(a0,d0.l*4),fp0
  7302.     fmul.s    #$.41F80000,fp0
  7303.     fmove.l    fp0,d3
  7304.     moveq    #$A,d4
  7305.     asl.l    d4,d3
  7306.     or.l    d3,d1
  7307.     lea    -$640C(a5),a0
  7308.     fmove.s    0(a0,d0.l*4),fp0
  7309.     fmul.s    #$.3F800000,fp0
  7310.     fmove.l    fp0,d3
  7311.     moveq    #$F,d4
  7312.     asl.l    d4,d3
  7313.     or.l    d3,d1
  7314.     move.w    d1,0(a1,d0.l*2)
  7315.     addq.l    #1,d0
  7316. L1707
  7317.     cmp.l    d2,d0
  7318.     blo.b    L1706
  7319. L1708
  7320. ;            
  7321.     bra    L1770
  7322. L1709
  7323. ;            if (format == GL_RGBA) 
  7324.     cmp.l    #$1908,d3
  7325.     bne    L1714
  7326. L1710
  7327. ;               GLuint *dst = (GLuint *) destination;
  7328.     move.l    a2,a1
  7329. ;               for (i=0;
  7330.     moveq    #0,d0
  7331.     bra    L1712
  7332. L1711
  7333. ;                  dst[i] = (((GLint) (red[i]   * 2
  7334.     lea    -$190C(a5),a0
  7335.     fmove.s    0(a0,d0.l*4),fp0
  7336.     fmul.s    #$.437F0000,fp0
  7337.     fmove.l    fp0,d1
  7338.     moveq    #$18,d3
  7339.     asl.l    d3,d1
  7340.     lea    -$320C(a5),a0
  7341.     fmove.s    0(a0,d0.l*4),fp0
  7342.     fmul.s    #$.437F0000,fp0
  7343.     fmove.l    fp0,d3
  7344.     moveq    #$10,d4
  7345.     asl.l    d4,d3
  7346.     or.l    d3,d1
  7347.     lea    -$4B0C(a5),a0
  7348.     fmove.s    0(a0,d0.l*4),fp0
  7349.     fmul.s    #$.437F0000,fp0
  7350.     fmove.l    fp0,d3
  7351.     moveq    #$8,d4
  7352.     asl.l    d4,d3
  7353.     or.l    d3,d1
  7354.     lea    -$640C(a5),a0
  7355.     fmove.s    0(a0,d0.l*4),fp0
  7356.     fmul.s    #$.437F0000,fp0
  7357.     fmove.l    fp0,d3
  7358.     or.l    d3,d1
  7359.     move.l    d1,0(a1,d0.l*4)
  7360.     addq.l    #1,d0
  7361. L1712
  7362.     cmp.l    d2,d0
  7363.     blo.b    L1711
  7364. L1713
  7365.     bra    L1723
  7366. L1714
  7367. ;            else if (format == GL_BGRA) 
  7368.     cmp.l    #$80E1,d3
  7369.     bne    L1719
  7370. L1715
  7371. ;               GLushort *dst = (GLushort *) destinati
  7372.     move.l    a2,a1
  7373. ;               for (i=0;
  7374.     moveq    #0,d0
  7375.     bra    L1717
  7376. L1716
  7377. ;                  dst[i] = (((GLint) (blue[i]  * 2
  7378.     lea    -$4B0C(a5),a0
  7379.     fmove.s    0(a0,d0.l*4),fp0
  7380.     fmul.s    #$.437F0000,fp0
  7381.     fmove.l    fp0,d1
  7382.     moveq    #$18,d3
  7383.     asl.l    d3,d1
  7384.     lea    -$320C(a5),a0
  7385.     fmove.s    0(a0,d0.l*4),fp0
  7386.     fmul.s    #$.437F0000,fp0
  7387.     fmove.l    fp0,d3
  7388.     moveq    #$10,d4
  7389.     asl.l    d4,d3
  7390.     or.l    d3,d1
  7391.     lea    -$190C(a5),a0
  7392.     fmove.s    0(a0,d0.l*4),fp0
  7393.     fmul.s    #$.437F0000,fp0
  7394.     fmove.l    fp0,d3
  7395.     moveq    #$8,d4
  7396.     asl.l    d4,d3
  7397.     or.l    d3,d1
  7398.     lea    -$640C(a5),a0
  7399.     fmove.s    0(a0,d0.l*4),fp0
  7400.     fmul.s    #$.437F0000,fp0
  7401.     fmove.l    fp0,d3
  7402.     or.l    d3,d1
  7403.     move.w    d1,0(a1,d0.l*2)
  7404.     addq.l    #1,d0
  7405. L1717
  7406.     cmp.l    d2,d0
  7407.     blo.b    L1716
  7408. L1718
  7409.     bra    L1723
  7410. L1719
  7411. ;            else if (format == GL_ABGR_EXT) 
  7412.     cmp.l    #$8000,d3
  7413.     bne    L1723
  7414. L1720
  7415. ;               GLushort *dst = (GLushort *) destinati
  7416.     move.l    a2,a1
  7417. ;               for (i=0;
  7418.     moveq    #0,d0
  7419.     bra    L1722
  7420. L1721
  7421. ;                  dst[i] = (((GLint) (alpha[i] * 2
  7422.     lea    -$640C(a5),a0
  7423.     fmove.s    0(a0,d0.l*4),fp0
  7424.     fmul.s    #$.437F0000,fp0
  7425.     fmove.l    fp0,d1
  7426.     moveq    #$18,d3
  7427.     asl.l    d3,d1
  7428.     lea    -$4B0C(a5),a0
  7429.     fmove.s    0(a0,d0.l*4),fp0
  7430.     fmul.s    #$.437F0000,fp0
  7431.     fmove.l    fp0,d3
  7432.     moveq    #$10,d4
  7433.     asl.l    d4,d3
  7434.     or.l    d3,d1
  7435.     lea    -$320C(a5),a0
  7436.     fmove.s    0(a0,d0.l*4),fp0
  7437.     fmul.s    #$.437F0000,fp0
  7438.     fmove.l    fp0,d3
  7439.     moveq    #$8,d4
  7440.     asl.l    d4,d3
  7441.     or.l    d3,d1
  7442.     lea    -$190C(a5),a0
  7443.     fmove.s    0(a0,d0.l*4),fp0
  7444.     fmul.s    #$.437F0000,fp0
  7445.     fmove.l    fp0,d3
  7446.     or.l    d3,d1
  7447.     move.w    d1,0(a1,d0.l*2)
  7448.     addq.l    #1,d0
  7449. L1722
  7450.     cmp.l    d2,d0
  7451.     blo.b    L1721
  7452. L1723
  7453. ;            
  7454.     bra    L1770
  7455. L1724
  7456. ;            if (format == GL_RGBA) 
  7457.     cmp.l    #$1908,d3
  7458.     bne    L1729
  7459. L1725
  7460. ;               GLuint *dst = (GLuint *) destination;
  7461.     move.l    a2,a1
  7462. ;               for (i=0;
  7463.     moveq    #0,d0
  7464.     bra    L1727
  7465. L1726
  7466. ;                  dst[i] = (((GLint) (red[i]   * 2
  7467.     lea    -$190C(a5),a0
  7468.     fmove.s    0(a0,d0.l*4),fp0
  7469.     fmul.s    #$.437F0000,fp0
  7470.     fmove.l    fp0,d1
  7471.     lea    -$320C(a5),a0
  7472.     fmove.s    0(a0,d0.l*4),fp0
  7473.     fmul.s    #$.437F0000,fp0
  7474.     fmove.l    fp0,d3
  7475.     moveq    #$8,d4
  7476.     asl.l    d4,d3
  7477.     or.l    d3,d1
  7478.     lea    -$4B0C(a5),a0
  7479.     fmove.s    0(a0,d0.l*4),fp0
  7480.     fmul.s    #$.437F0000,fp0
  7481.     fmove.l    fp0,d3
  7482.     moveq    #$10,d4
  7483.     asl.l    d4,d3
  7484.     or.l    d3,d1
  7485.     lea    -$640C(a5),a0
  7486.     fmove.s    0(a0,d0.l*4),fp0
  7487.     fmul.s    #$.437F0000,fp0
  7488.     fmove.l    fp0,d3
  7489.     moveq    #$18,d4
  7490.     asl.l    d4,d3
  7491.     or.l    d3,d1
  7492.     move.l    d1,0(a1,d0.l*4)
  7493.     addq.l    #1,d0
  7494. L1727
  7495.     cmp.l    d2,d0
  7496.     blo.b    L1726
  7497. L1728
  7498.     bra    L1738
  7499. L1729
  7500. ;            else if (format == GL_BGRA) 
  7501.     cmp.l    #$80E1,d3
  7502.     bne    L1734
  7503. L1730
  7504. ;               GLushort *dst = (GLushort *) destinati
  7505.     move.l    a2,a1
  7506. ;               for (i=0;
  7507.     moveq    #0,d0
  7508.     bra    L1732
  7509. L1731
  7510. ;                  dst[i] = (((GLint) (blue[i]  * 2
  7511.     lea    -$4B0C(a5),a0
  7512.     fmove.s    0(a0,d0.l*4),fp0
  7513.     fmul.s    #$.437F0000,fp0
  7514.     fmove.l    fp0,d1
  7515.     lea    -$320C(a5),a0
  7516.     fmove.s    0(a0,d0.l*4),fp0
  7517.     fmul.s    #$.437F0000,fp0
  7518.     fmove.l    fp0,d3
  7519.     moveq    #$8,d4
  7520.     asl.l    d4,d3
  7521.     or.l    d3,d1
  7522.     lea    -$190C(a5),a0
  7523.     fmove.s    0(a0,d0.l*4),fp0
  7524.     fmul.s    #$.437F0000,fp0
  7525.     fmove.l    fp0,d3
  7526.     moveq    #$10,d4
  7527.     asl.l    d4,d3
  7528.     or.l    d3,d1
  7529.     lea    -$640C(a5),a0
  7530.     fmove.s    0(a0,d0.l*4),fp0
  7531.     fmul.s    #$.437F0000,fp0
  7532.     fmove.l    fp0,d3
  7533.     moveq    #$18,d4
  7534.     asl.l    d4,d3
  7535.     or.l    d3,d1
  7536.     move.w    d1,0(a1,d0.l*2)
  7537.     addq.l    #1,d0
  7538. L1732
  7539.     cmp.l    d2,d0
  7540.     blo.b    L1731
  7541. L1733
  7542.     bra    L1738
  7543. L1734
  7544. ;            else if (format == GL_ABGR_EXT) 
  7545.     cmp.l    #$8000,d3
  7546.     bne    L1738
  7547. L1735
  7548. ;               GLushort *dst = (GLushort *) destinati
  7549.     move.l    a2,a1
  7550. ;               for (i=0;
  7551.     moveq    #0,d0
  7552.     bra    L1737
  7553. L1736
  7554. ;                  dst[i] = (((GLint) (alpha[i] * 2
  7555.     lea    -$640C(a5),a0
  7556.     fmove.s    0(a0,d0.l*4),fp0
  7557.     fmul.s    #$.437F0000,fp0
  7558.     fmove.l    fp0,d1
  7559.     lea    -$4B0C(a5),a0
  7560.     fmove.s    0(a0,d0.l*4),fp0
  7561.     fmul.s    #$.437F0000,fp0
  7562.     fmove.l    fp0,d3
  7563.     moveq    #$8,d4
  7564.     asl.l    d4,d3
  7565.     or.l    d3,d1
  7566.     lea    -$320C(a5),a0
  7567.     fmove.s    0(a0,d0.l*4),fp0
  7568.     fmul.s    #$.437F0000,fp0
  7569.     fmove.l    fp0,d3
  7570.     moveq    #$10,d4
  7571.     asl.l    d4,d3
  7572.     or.l    d3,d1
  7573.     lea    -$190C(a5),a0
  7574.     fmove.s    0(a0,d0.l*4),fp0
  7575.     fmul.s    #$.437F0000,fp0
  7576.     fmove.l    fp0,d3
  7577.     moveq    #$18,d4
  7578.     asl.l    d4,d3
  7579.     or.l    d3,d1
  7580.     move.w    d1,0(a1,d0.l*2)
  7581.     addq.l    #1,d0
  7582. L1737
  7583.     cmp.l    d2,d0
  7584.     blo.b    L1736
  7585. L1738
  7586. ;            
  7587.     bra    L1770
  7588. L1739
  7589. ;            if (format == GL_RGBA) 
  7590.     cmp.l    #$1908,d3
  7591.     bne    L1744
  7592. L1740
  7593. ;               GLuint *dst = (GLuint *) destination;
  7594.     move.l    a2,a1
  7595. ;               for (i=0;
  7596.     moveq    #0,d0
  7597.     bra    L1742
  7598. L1741
  7599. ;                  dst[i] = (((GLint) (red[i]   * 1
  7600.     lea    -$190C(a5),a0
  7601.     fmove.s    0(a0,d0.l*4),fp0
  7602.     fmul.s    #$.447FC000,fp0
  7603.     fmove.l    fp0,d1
  7604.     moveq    #$16,d3
  7605.     asl.l    d3,d1
  7606.     lea    -$320C(a5),a0
  7607.     fmove.s    0(a0,d0.l*4),fp0
  7608.     fmul.s    #$.447FC000,fp0
  7609.     fmove.l    fp0,d3
  7610.     moveq    #$C,d4
  7611.     asl.l    d4,d3
  7612.     or.l    d3,d1
  7613.     lea    -$4B0C(a5),a0
  7614.     fmove.s    0(a0,d0.l*4),fp0
  7615.     fmul.s    #$.447FC000,fp0
  7616.     fmove.l    fp0,d3
  7617.     moveq    #2,d4
  7618.     asl.l    d4,d3
  7619.     or.l    d3,d1
  7620.     lea    -$640C(a5),a0
  7621.     fmove.s    0(a0,d0.l*4),fp0
  7622.     fmul.s    #$.40400000,fp0
  7623.     fmove.l    fp0,d3
  7624.     or.l    d3,d1
  7625.     move.l    d1,0(a1,d0.l*4)
  7626.     addq.l    #1,d0
  7627. L1742
  7628.     cmp.l    d2,d0
  7629.     blo.b    L1741
  7630. L1743
  7631.     bra    L1753
  7632. L1744
  7633. ;            else if (format == GL_BGRA) 
  7634.     cmp.l    #$80E1,d3
  7635.     bne    L1749
  7636. L1745
  7637. ;               GLushort *dst = (GLushort *) destinati
  7638.     move.l    a2,a1
  7639. ;               for (i=0;
  7640.     moveq    #0,d0
  7641.     bra    L1747
  7642. L1746
  7643. ;                  dst[i] = (((GLint) (blue[i]  * 1
  7644.     lea    -$4B0C(a5),a0
  7645.     fmove.s    0(a0,d0.l*4),fp0
  7646.     fmul.s    #$.447FC000,fp0
  7647.     fmove.l    fp0,d1
  7648.     moveq    #$16,d3
  7649.     asl.l    d3,d1
  7650.     lea    -$320C(a5),a0
  7651.     fmove.s    0(a0,d0.l*4),fp0
  7652.     fmul.s    #$.447FC000,fp0
  7653.     fmove.l    fp0,d3
  7654.     moveq    #$C,d4
  7655.     asl.l    d4,d3
  7656.     or.l    d3,d1
  7657.     lea    -$190C(a5),a0
  7658.     fmove.s    0(a0,d0.l*4),fp0
  7659.     fmul.s    #$.447FC000,fp0
  7660.     fmove.l    fp0,d3
  7661.     moveq    #2,d4
  7662.     asl.l    d4,d3
  7663.     or.l    d3,d1
  7664.     lea    -$640C(a5),a0
  7665.     fmove.s    0(a0,d0.l*4),fp0
  7666.     fmul.s    #$.40400000,fp0
  7667.     fmove.l    fp0,d3
  7668.     or.l    d3,d1
  7669.     move.w    d1,0(a1,d0.l*2)
  7670.     addq.l    #1,d0
  7671. L1747
  7672.     cmp.l    d2,d0
  7673.     blo.b    L1746
  7674. L1748
  7675.     bra    L1753
  7676. L1749
  7677. ;            else if (format == GL_ABGR_EXT) 
  7678.     cmp.l    #$8000,d3
  7679.     bne    L1753
  7680. L1750
  7681. ;               GLushort *dst = (GLushort *) destinati
  7682.     move.l    a2,a1
  7683. ;               for (i=0;
  7684.     moveq    #0,d0
  7685.     bra    L1752
  7686. L1751
  7687. ;                  dst[i] = (((GLint) (alpha[i] * 1
  7688.     lea    -$640C(a5),a0
  7689.     fmove.s    0(a0,d0.l*4),fp0
  7690.     fmul.s    #$.447FC000,fp0
  7691.     fmove.l    fp0,d1
  7692.     moveq    #$16,d3
  7693.     asl.l    d3,d1
  7694.     lea    -$4B0C(a5),a0
  7695.     fmove.s    0(a0,d0.l*4),fp0
  7696.     fmul.s    #$.447FC000,fp0
  7697.     fmove.l    fp0,d3
  7698.     moveq    #$C,d4
  7699.     asl.l    d4,d3
  7700.     or.l    d3,d1
  7701.     lea    -$320C(a5),a0
  7702.     fmove.s    0(a0,d0.l*4),fp0
  7703.     fmul.s    #$.447FC000,fp0
  7704.     fmove.l    fp0,d3
  7705.     moveq    #2,d4
  7706.     asl.l    d4,d3
  7707.     or.l    d3,d1
  7708.     lea    -$190C(a5),a0
  7709.     fmove.s    0(a0,d0.l*4),fp0
  7710.     fmul.s    #$.40400000,fp0
  7711.     fmove.l    fp0,d3
  7712.     or.l    d3,d1
  7713.     move.w    d1,0(a1,d0.l*2)
  7714.     addq.l    #1,d0
  7715. L1752
  7716.     cmp.l    d2,d0
  7717.     blo.b    L1751
  7718. L1753
  7719. ;            
  7720.     bra    L1770
  7721. L1754
  7722. ;            if (format == GL_RGBA) 
  7723.     cmp.l    #$1908,d3
  7724.     bne    L1759
  7725. L1755
  7726. ;               GLuint *dst = (GLuint *) destination;
  7727.     move.l    a2,a1
  7728. ;               for (i=0;
  7729.     moveq    #0,d0
  7730.     bra    L1757
  7731. L1756
  7732. ;                  dst[i] = (((GLint) (red[i]   * 1
  7733.     lea    -$190C(a5),a0
  7734.     fmove.s    0(a0,d0.l*4),fp0
  7735.     fmul.s    #$.447FC000,fp0
  7736.     fmove.l    fp0,d1
  7737.     lea    -$320C(a5),a0
  7738.     fmove.s    0(a0,d0.l*4),fp0
  7739.     fmul.s    #$.447FC000,fp0
  7740.     fmove.l    fp0,d3
  7741.     moveq    #$A,d4
  7742.     asl.l    d4,d3
  7743.     or.l    d3,d1
  7744.     lea    -$4B0C(a5),a0
  7745.     fmove.s    0(a0,d0.l*4),fp0
  7746.     fmul.s    #$.447FC000,fp0
  7747.     fmove.l    fp0,d3
  7748.     moveq    #$14,d4
  7749.     asl.l    d4,d3
  7750.     or.l    d3,d1
  7751.     lea    -$640C(a5),a0
  7752.     fmove.s    0(a0,d0.l*4),fp0
  7753.     fmul.s    #$.40400000,fp0
  7754.     fmove.l    fp0,d3
  7755.     moveq    #$1E,d4
  7756.     asl.l    d4,d3
  7757.     or.l    d3,d1
  7758.     move.l    d1,0(a1,d0.l*4)
  7759.     addq.l    #1,d0
  7760. L1757
  7761.     cmp.l    d2,d0
  7762.     blo.b    L1756
  7763. L1758
  7764.     bra    L1768
  7765. L1759
  7766. ;            else if (format == GL_BGRA) 
  7767.     cmp.l    #$80E1,d3
  7768.     bne    L1764
  7769. L1760
  7770. ;               GLushort *dst = (GLushort *) destinati
  7771.     move.l    a2,a1
  7772. ;               for (i=0;
  7773.     moveq    #0,d0
  7774.     bra    L1762
  7775. L1761
  7776. ;                  dst[i] = (((GLint) (blue[i]  * 1
  7777.     lea    -$4B0C(a5),a0
  7778.     fmove.s    0(a0,d0.l*4),fp0
  7779.     fmul.s    #$.447FC000,fp0
  7780.     fmove.l    fp0,d1
  7781.     lea    -$320C(a5),a0
  7782.     fmove.s    0(a0,d0.l*4),fp0
  7783.     fmul.s    #$.447FC000,fp0
  7784.     fmove.l    fp0,d3
  7785.     moveq    #$A,d4
  7786.     asl.l    d4,d3
  7787.     or.l    d3,d1
  7788.     lea    -$190C(a5),a0
  7789.     fmove.s    0(a0,d0.l*4),fp0
  7790.     fmul.s    #$.447FC000,fp0
  7791.     fmove.l    fp0,d3
  7792.     moveq    #$14,d4
  7793.     asl.l    d4,d3
  7794.     or.l    d3,d1
  7795.     lea    -$640C(a5),a0
  7796.     fmove.s    0(a0,d0.l*4),fp0
  7797.     fmul.s    #$.40400000,fp0
  7798.     fmove.l    fp0,d3
  7799.     moveq    #$1E,d4
  7800.     asl.l    d4,d3
  7801.     or.l    d3,d1
  7802.     move.w    d1,0(a1,d0.l*2)
  7803.     addq.l    #1,d0
  7804. L1762
  7805.     cmp.l    d2,d0
  7806.     blo.b    L1761
  7807. L1763
  7808.     bra    L1768
  7809. L1764
  7810. ;            else if (format == GL_ABGR_EXT) 
  7811.     cmp.l    #$8000,d3
  7812.     bne    L1768
  7813. L1765
  7814. ;               GLushort *dst = (GLushort *) destinati
  7815.     move.l    a2,a1
  7816. ;               for (i=0;
  7817.     moveq    #0,d0
  7818.     bra    L1767
  7819. L1766
  7820. ;                  dst[i] = (((GLint) (alpha[i] * 1
  7821.     lea    -$640C(a5),a0
  7822.     fmove.s    0(a0,d0.l*4),fp0
  7823.     fmul.s    #$.447FC000,fp0
  7824.     fmove.l    fp0,d1
  7825.     lea    -$4B0C(a5),a0
  7826.     fmove.s    0(a0,d0.l*4),fp0
  7827.     fmul.s    #$.447FC000,fp0
  7828.     fmove.l    fp0,d3
  7829.     moveq    #$A,d4
  7830.     asl.l    d4,d3
  7831.     or.l    d3,d1
  7832.     lea    -$320C(a5),a0
  7833.     fmove.s    0(a0,d0.l*4),fp0
  7834.     fmul.s    #$.447FC000,fp0
  7835.     fmove.l    fp0,d3
  7836.     moveq    #$14,d4
  7837.     asl.l    d4,d3
  7838.     or.l    d3,d1
  7839.     lea    -$190C(a5),a0
  7840.     fmove.s    0(a0,d0.l*4),fp0
  7841.     fmul.s    #$.40400000,fp0
  7842.     fmove.l    fp0,d3
  7843.     moveq    #$1E,d4
  7844.     asl.l    d4,d3
  7845.     or.l    d3,d1
  7846.     move.w    d1,0(a1,d0.l*2)
  7847.     addq.l    #1,d0
  7848. L1767
  7849.     cmp.l    d2,d0
  7850.     blo.b    L1766
  7851. L1768
  7852. ;            
  7853.     bra.b    L1770
  7854. L1769
  7855. ;            gl_problem( ctx, "bad type in gl_pack_rgba_s
  7856.     move.l    #L1335,-(a7)
  7857.     move.l    a4,-(a7)
  7858.     jsr    _gl_problem
  7859.     addq.w    #$8,a7
  7860. L1770
  7861.     fmovem.x (a7)+,fp2/fp3/fp4/fp5
  7862.     movem.l    (a7)+,d2-d4/a2-a4
  7863.     unlk    a5
  7864.     rts
  7865.  
  7866. L1334
  7867.     dc.b    'bad format in gl_pack_rgba_span',$A,0
  7868. L1335
  7869.     dc.b    'bad type in gl_pack_rgba_span',0
  7870.  
  7871.     END
  7872.